Я пытаюсь выяснить, что лучше всего подходит для создания новой строки.Лучшая практика создания записи (отношения)?
Пусть говорят, что мы имеем это в контроллере:
$this->noteRepository->addNote($request->user(), $name, $note);
Два рабочего раствора addNote
метода в noteRepository
классе, например:
Вариант 1 - Это позволит создать запись с помощью noteModel
public function addNote($user, $name, $note)
{
return $this->noteModel->create([
'user_id' => $user->id,
'name' => $name,
'note' => $note,
]);
}
Вариант 2 - в пользовательской модели есть метод notes()
.
public function addNote($user, $name, $note)
{
return $user->notes()->create([
'user_id' => $user->id,
'name' => $name,
'note' => $note,
]);
}
В user
модели выглядеть следующим образом:
public function notes()
{
return $this->hasMany(Note::class);
}
Какой рекомендуется подход к использованию и почему?
Согласен. Я тоже использую этот подход. – alariva
iCode, если addNote - это метод в пользовательской модели, я могу использовать $ this-> notes() -> create(); и удалить $ user из параметров? – borracciaBlu
@borracciaBlu Да, вы можете это сделать. –