Я немного запутался в своем коде в Laravel.У меня есть участник, который может подписаться на один или несколько уроков.У меня есть три таблицы: участники, уроки и lesson_member.
Я создал форму участника, и из этой формы я могу зарегистрировать участника в уроке (мне нужно получить идентификатор урока и поставитьзапись в сводной таблице).
Тогда у меня есть форма урока;Я могу создать новый урок и поместить в него одного или нескольких участников (в этом случае мне нужен код участника).Эти две функции почти одинаковы, но параметры разные.В своем решении я создал два разных контроллера с двумя разными функциями.
LessonController
<?php
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->memberId)
->exists()))) {
$lessonMember->lesson_id = $lessonId;
$lessonMember->license_member_id = $request->memberId;
$lessonMember->save();
$member = LicenseMember::find($request->memberId)->member;
return response()->json(['user_saved' => $member, 'llm' => $lessonMember, 'actualMembers' => $actualMembers]);
}
}
MemberController
<?php
public function addLesson(Request $request)
{
$lessonMember = new LessonMember();
$memberId = $request->session()->get('memberId', 1);
if ((!($lessonMember::where('lesson_id', $request->lessonId)
->where('license_member_id', $memberId)
->exists()))) {
$lessonMember->lesson_id = $request->lessonId;
$lessonMember->license_member_id = $memberId;
$lessonMember->save();
$member = LicenseMember::find($memberId)->member;
return response()->json(['user_saved' => $member, 'llm' => $lessonMember]);
}
}
У меня та же проблема с методом removeFromLesson () и с методом updateLessonMember, но решение должно быть аналогичным.Это точно не СУХОЙ, и я думаю, что я должен поместить некоторый код в модель (или где-то еще), но я не знаю, как поступить.Я хочу провести рефакторинг, чтобы получить чистое решение.Я читал о чертах, но я не знаю, правильно ли это следовать.