オブジェクトでの操作と、create メソッドでの操作の使い分けを教えてください

どちらの方法でも実現が可能であり、どちらが正しい、ということはありません。
2022年1月8日
ユーザー

大変、お世話になります。

class CommentController extends Controller
{
    public function store(Request $request, Post $post)
    {
      $comment = new Comment();
      $comment->post_id = $post->id;
      $comment->body = $request->body;
      $comment->save();

      return redirect()
        -> route('posts.show', $post);
    }
}

上記の箇所については、オブジェクトでの操作ではなく、下記のように、create メソッドを使っての操作でも可能かと思います。

class CommentController extends Controller
{
    public function store(Request $request, Post $post)
    {
      Comment::create(['post_id' => $post->id, 'body' => $request->body]);

      return redirect()
        -> route('posts.show', $post);
    }
}

「#05 複数のコメントを挿入しよう」では、Tinker で create メソッドを使っていますが、なぜ、今回は、オブジェクトからレコードを挿入しているのでしょうか?

今回は、「#05 複数のコメントを挿入しよう」にて、仮のレコードを挿入しているので、$fillable プロパティの設定をしていますが、「#05 複数のコメントを挿入しよう」でも、オブジェクトでレコードを挿入していれば、Comment モデルでは $fillable の設定は不要だと思いますし、この動画のレッスンでも、 オブジェクトでの操作なら $fillable の設定が不要だと思いますが、その様な理由からでしょうか?

基本的に、どちらで操作するのが良いのか、本番での実装では、どちらを多用するのが一般的なのか、使い分けについて、教えて頂ければ幸いです。

宜しくお願い致します。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(3)