У меня есть 3 таблицы: члены (идентификатор, имя)проверить, есть ли на уроке максимум участников.Если да, поле full должно быть true, иначе false.Я думаю, что лучше всего использовать наблюдателей.Это мой наблюдатель:
updateFullLesson ($ lessonLicenseMember);}
public function deleting(LessonLicenseMember $lessonLicenseMember)
{
$this->updateFullLesson($lessonLicenseMember);
}
public function updateFullLesson(LessonMember $lessonMember): void
{
$maxMembers = $lessonMember->lesson->course->type->max_members;
$countActualMembers = LessonMember::where('lesson_id', $lessonMember->lesson->id)->count();
$lesson=Lesson::find($lessonMember->lesson->id);
if ($countActualMembers + 1 >= $maxMembers) {
$lesson->full = true;
} else {
$lesson->full = false;
}
$lesson->save();
}
}
А вот 3 функции в контроллере:
<?php
public function removeMember($lessonMemberId)
{
$lessonMember=LessonMember::findOrFail($lessonMemberId);
$lesson=$lessonMember->lesson;
$lessonMember->delete();
return redirect()->route('lessons.edit',['lesson'=>$lesson->id])->with('id',trans('lesson.member_removed'))->withInput(['tab'=>'tab2']);
}
public function editLessonLicenseMember($lessonLicenseMemberId,Request $request)
{
$lessonMember=LessonMember::findOrFail($lessonLicenseMemberId);
$lessonMember->notes=$request->notes;
$lessonMember->save();
//return redirect()->route('lessons.edit',['lesson'=>$lesson->id])->with('id',trans('lesson.member_removed'))->withInput(['tab'=>'tab2']);
}
public function addMember(Request $request)
{
$lessonMember=new LessonMember();
$lessonId = $request->session()->get('lessonId',1);
if((!($lessonMember::where('lesson_id','=',$lessonId)
->where('license_member_id','=',$request->licenseMemberId)
->exists()))) {
$lessonMember->lesson_id = $lessonId;
$lessonMember->license_member_id = $request->licenseMemberId;
$lessonMember->save();
}
Когда я пытаюсь запустить программу, она не выдает никакой ошибки, но поле в БД никогда не меняется.