図のcommentsテーブルに入っているuser_idを利用して、元のuserテーブルにあるuserのnameは取得できるでしょうか?
特にforeign-keyとしては指定していません。 userのidとuser_idは一致しています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
特にforeign-keyとしては指定していません。
指定しましょう。
userのidとuser_idは一致しています。
それは思い込みです。
人間はミスをします。だから仕組みで解決することが必要です。
データの整合性はRDBに保証してもらうべきです。
一般的にはcommentはuserからみて1対多、micropostからみても1対多のモデルになります。
現状、userとcommentのリレーション定義を行っていないので以下の設定を追加します。
User.php
public function comments() { return hasMany('App\Comment'); }
Comment.php
public function user() { return belongsTo('App\User'); }
あるいはuserとmicropostsの多対多の中間モデルとして定義しても良いでしょう。
マイグレーションファイルも外部キー設定を行います。
ちゃんとリレーション定義を行えば参照は簡単なので横着は禁物です。
投稿2018/09/05 08:31
退会済みユーザー
総合スコア0
0
ベストアンサー
こういうこと?
(例なのでcommentsテーブルのidで特定するようにしています。)
SQL
1select u.name 2 from users u, 3 comments c 4 where u.id = c.user_id 5 and c.id = '投稿ID'
問題なく取れるとは思いますが、micropostテーブル挟んでるので条件等に追加したほうがよいとは思います。
あぁ、phpですね。。。
comments⇒micropost⇒usersと見ていけば取れると思いますよ。
投稿2018/09/05 08:20
編集2018/09/05 08:23総合スコア672
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/09/05 08:34
2018/09/05 08:46 編集
退会済みユーザー
2018/09/05 08:53 編集
退会済みユーザー
2018/09/05 08:57
2018/09/05 09:08 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。