我有两张桌子,第一张是学生,第二张是lesson_student表。他们在学生和课桌之间有m2m关系。我想检查一下,如果student_id存在于student表中而不存在于lesson_student表中,请插入它。我使用exists
来检查学生表,但我不知道如何检查它是否存在于lesson_student表中。
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);
}
顺便说一句,我正在使用laravel 5.6
答案 0 :(得分:1)
您可能希望使用unique这样的规则:
$rules = [
'student_id' => 'required|exists:students,id|unique:lesson_student:student_id'
]
修改强>
当您在评论中更新和解释时,您希望在lesson_student
表格中拥有唯一的student_id和lesson_id。然后你可以使用:
$rules = [
'student_id' => [
'required',
'exists:students,id',
\Illuminate\Validation\Rule::unique('lesson_student', 'student_id')
->where('lesson_id', $lesson->id),
]
];