Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

Ayenko4all/school-management-system-backend

12 stars
2 code files
View Ayenko4all/school-management-system-backend on GitHub

app/Rules/CreateClassroomRule.php

Open in GitHub
use App\Models\Classroom;
use App\Models\Subject;
use Illuminate\Contracts\Validation\Rule;
 
class CreateClassroomRule implements Rule
{
private $name;
 
private $session;
 
public function __construct($name, $session)
{
$this->name = $name;
$this->session = $session;
}
 
public function passes($attribute, $value)
{
return Classroom::where('name', $this->name)
->where('session_id', $this->session)->doesntExist();
}
 
public function message()
{
return 'The :attribute already exists for the given session.';
}
}

app/Http/Requests/CreateClassroomRequest.php

Open in GitHub
use App\Rules\CreateClassroomRule;
use Illuminate\Foundation\Http\FormRequest;
 
class CreateClassroomRequest extends FormRequest
{
public function authorize()
{
return true;
}
 
public function rules()
{
return [
'name' => ['required', new CreateClassroomRule($this->input('name'), $this->input('session'))],
'session' => ['required', 'exists:sessions,id'],
];
}
 
public function messages()
{
return [
'*.required' => 'The :attribute field is required',
'*.exists' => 'The selected :attribute does not exist'
];
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.