代码之家  ›  专栏  ›  技术社区  ›  Simon Damminga

Laravel$posts+=Post::where()可能吗

  •  -1
  • Simon Damminga  · 技术社区  · 8 年前

    我不能让它工作

    在我的PostsController中

    foreach(Auth::user()->roles as $role){
       $posts += Post::where('role_id', $role->id);
    }
    return view('posts.index')->with('posts', $posts);
    

    这有什么办法可行吗?

    我收到错误信息

    posts is not defined
    

    加载网页时

    2 回复  |  直到 8 年前
        1
  •  0
  •   Jonas Staudenmeir    8 年前

    尝试以下操作:

    $posts = Post::whereIn('role_id', Auth::user()->roles->pluck('id'))->get();
    
        2
  •  0
  •   milo526    8 年前

    首先,您必须创建 $posts 并对其进行初始化,此外,您需要合并集合,而不是添加它们。

    $posts = collect([]);
    foreach(Auth::user()->roles as $role){
        $posts->merge(Post::where('role_id', $role->id));
    }
    return view('posts.index')->with('posts', $posts);