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

时间:2018-04-05 14:47:45

标签: php laravel controller

我无法让这个工作

它在我的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 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

试试这个:

$posts = Post::whereIn('role_id', Auth::user()->roles->pluck('id'))->get();