1
新しい行を作成するのがベストプラクティスであることを理解しようとしています。エントリ(リレーションシップ)を作成するベストプラクティス?
レッツは、我々はコントローラでこれを持っていると言う:例えばnoteRepository
クラスのaddNote
方法の
$this->noteRepository->addNote($request->user(), $name, $note);
二つのワーキング溶液、:
オプション1 - これはnoteModel
public function addNote($user, $name, $note)
{
return $this->noteModel->create([
'user_id' => $user->id,
'name' => $name,
'note' => $note,
]);
}
オプション2 - ユーザーモデルにnotes()
メソッドがあります。 user
モデルで
public function addNote($user, $name, $note)
{
return $user->notes()->create([
'user_id' => $user->id,
'name' => $name,
'note' => $note,
]);
}
は、次のようになります。
public function notes()
{
return $this->hasMany(Note::class);
}
使用するためのアプローチとその理由をお勧めしますか?手動でFKを設定する必要はありません、それはよりエレガントで読みやすいですので、それはです
public function addNote($user, $name, $note)
{
return $user->notes()->create([
'name' => $name,
'note' => $note,
]);
}
:として
同意する。私はこのアプローチも使用しています。 – alariva
iCode addNoteがユーザーモデルのメソッドである場合、$ this-> notes() - > create();を使用できます。 paramsから$ userを削除しますか? – borracciaBlu
@borracciaBluはい、これを行うことができます。 –