I have two tables, first one is students and second one is lesson_student table. They have m2m relationship between students and lessons tables. I want to check, if student_id exists in students table and not exists in lesson_student table, insert it. I use exists
to check in students table but i have no idea how to check it is not exists in lesson_student table.
public function store(Request $request, Lesson $lesson) {
$rules = [
'student_id' => 'required|exists:students,id'
];
$this->validate($request, $rules);
$lesson->students()->attach($request->student_id);
return $this->showAll($lesson->students);
}
btw i am using laravel 5.6
Probably you want to use unique rule like this:
$rules = [
'student_id' => 'required|exists:students,id|unique:lesson_student:student_id'
]
EDIT
As you updated and explained in comment you want to have unique student_id and lesson_id in lesson_student
table. Then you can use:
$rules = [
'student_id' => [
'required',
'exists:students,id',
\Illuminate\Validation\Rule::unique('lesson_student', 'student_id')
->where('lesson_id', $lesson->id),
]
];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With