You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel使用overtrue/laravel-follow时$followings变量未定义报错求助

问题原因及解决办法

核心错误:视图参数传递方式错误

你在return view()里的写法有误,view()函数的第二个参数需要是包含所有变量的关联数组,但你现在把compact('user')、compact('posts')、compact('followings')作为三个独立参数传入——这导致只有第一个user变量被传递到视图,posts和followings根本没传进去,所以视图里会报Undefined variable $followings。

修正后的控制器代码

public function userFollow($username)
{
    $user = User::where('username', $username)->firstOrFail();

    $posts = Post::where('user_id', $user->id)->simplePaginate(3);
    // 下面这行是冗余代码,前面已经通过firstOrFail拿到了$user,无需重复查询
    // $user = User::find($user->id);
    $followings = $user->followings()->with('followable')->get();

    // 将所有变量合并到一个compact中,或直接用数组形式传递
    return view('/@', compact('user', 'posts', 'followings'));
}

补充说明

  • compact('a', 'b', 'c')会直接生成['a' => $a, 'b' => $b, 'c' => $c]格式的数组,完全符合view()函数对第二个参数的要求。
  • 你之前的dd($followings)会直接终止程序执行,所以哪怕后面的return逻辑有问题,也无法发现——排查这类问题时,记得先注释掉dd()再测试视图变量是否正常传递。

内容的提问来源于stack exchange,提问作者Davi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:01:10