laravel5.7で、user同士をフレンズ化するのに多対多のリレーションを作ってみた

laravel5.7で、user同士をフレンズ化するのに多対多のリレーションを作ってみた

1, 多対多のリレーションには、中間テーブルが必要
※命名規約的には、users_usersテーブルだけど、friendsテーブルの方が分かりやすい

2, laravelで多対多のリレーションは、BelongtoManyを使う
app\User.php

3, factoryでseeder

4, 画面に表示してみる
HomeController.php

home.blade.php

5, よく考えたら、問題あり!
user_id → friend_idは、表示出来ているけど、friend_id → user_idも一緒に表示しないとダメでは?(自分のフォローした人しか表示してない。相手からフォローされたリストも表示しないとダメ!)

リレーションを追加
app\User.php

//マージして、両方を変数に格納する
HomeController.php

6, これで完成かな~。と思ったけど、user_id → friend_idとfriend_id → user_idの両方があって重複する場合は、両方表示しちゃダメだな。

mergeだと重複を削除してくれる。concatだと重複のまま存在するみたい
HomeController.php

コメントを残す

メールアドレスが公開されることはありません。