Laravel модель наблюдателя событий - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть 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();

    }

Когда я пытаюсь запустить программу, она не выдает никакой ошибки, но поле в БД никогда не меняется.

...