###はじめに
Laravel初学者です。
Laravelでユーザーが投稿した投稿にコメントをできる機能を実装したいと考えております。
phpのバージョン = 7.4.2
Laravelのバージョン = 5.8
テーブル構成
Usersテーブル
id name
Postsテーブル
id user_id
Commentsテーブル
id comment post_id user_id
該当のソースコード
Productモデルのリレーション
public function comments() { return $this->hasMany('App\Comment'); }
Commentモデルのリレーション
public function product() { return $this->belongsTo('App\Product'); }
Controller
public function addComment(addCommentRequest $request, $id) { unset($request->_token) $product = Product::find($id); $comment = new Comment; $product->comments()->save($comment->fill(['user_id' => Auth::id(), 'comment' => $request->comment])); // リダイレクト処理 }
###質問したいこと
Commentsテーブルにuser_idも保存して誰がそのコメントをしたかわかるようにしたいです。
上記のように保存すると一応保存はできたのですが、保存の仕方としてはこれが適切なのかがわかりません。
また、テーブルの設計は上記で正しいのでしょうか。中間テーブルを挟んだほうがよろしいのでしょうか?
もし保存の方法が間違っているようでしたら、ご教授のほどよろしくお願いいたします。
あなたの回答
tips
プレビュー