我有一张Laravel表posts
,其中包含多个categories
。如何获取按posts
分组的所有categories
?我正在做Post::where('userID', 1)->groupBy('categoryID')
之类的事情。但是这只返回了一个扁平数组的命名数组,如下所示:
[1 => ['title'=>'title 1'], 2 => ['title'=>'title3']]
如何返回这样的数组数组:
[1 => [['title'=>'title 1'], ['title' => 'title 2], 2 => [['title'=>'title 3']]]
更新: 我正在进行连接,然后使用Laravel的集合在php中对它进行排序:
Post::join('categories', ....).where('userID', 1)->get()->groupBy('categoryID');
我能够得到我想要的东西,但想知道是否有更好的方法?
答案 0 :(得分:1)
你可能想要这个:
$catsWithPosts = Category::with(array('posts' => function($query){
$query->select('title')->where('userID', 1);
}))->get();
假设您已在Post
和Category
模型之间声明了正确的关系。