※コード整形をしたいので新しい回答から失礼します。
ありがとうございます。
そうですね。見ているのはprofile.indexなので、
app/Http/Controllers/ProfilesController.php
の
public function index(User $user)
{
return view('profiles.index', compact('user'));←ここ
}
でshow
メソッドのように
$follower_count
、$follow_count
を渡していないので、「変数が定義されてなくて値が見れないよ」と言われてますね。
compact('user', 'follow_count', 'follower_count''))
にしたいので、
その前に、public function index
の中で$follow_count
、$follower_count
を取ってきて変数として定義する必要があります。
https://qiita.com/ryo2132/items/63ced19601b3fa30e6de#%E8%A4%87%E6%95%B0%E3%81%AE%E5%A4%89%E6%95%B0%E3%81%AE%E9%80%81%E4%BF%A1
Follower $follower
をurlのパスから取りたいですが、一番最初のコメントに書いたように、複数の主キーを持つテーブルはモデル結合(route model Binding)で取れないです。
Follower はUserから取ってやるといいと思います。
ただここで、
UserとFollowerはbelongsToMany
とapp/Models/User.php
でリレーションを記述してますので、それぞれのbelongsToMany
を定義しているメソッド名
Follower $follower = $user->followers->first();
Follower $follow = $user->follows->first();
などでFollowerモデルは取れそうですが、
個人的にはapp/Models/Follower.php
のgetFollowCount
、getFollowerCount
メソッドはUserモデルに書いてあげたほうがいいと思います。
1つに定まるもののモデルからメソッドで呼んであげたほうがいいと思います。
Follower $follower = $user->followers->first();
「ユーザのフォロワーの配列を取って、どれか一つから、カウントして」では動きも正直うまくできるのか机上で見てて自信はありません。
「一人の特定したユーザーからフォロワーの件数を取ってくる」とし、UserモデルにgetFollowCount
、getFollowerCount
を書いてやるほうがいいと思います。
長く書いてしまいましたが、詰まってしまったらまたコメントなどでお願いします。微力ながらお手伝いさせて頂きます。