Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel使用groupBy获取数组的数组_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php Laravel使用groupBy获取数组的数组

Php Laravel使用groupBy获取数组的数组,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有一个带有多个类别的Laravel表帖子。如何获取按类别分组的所有帖子?我在做类似于Post::where('userID',1)->groupBy('categoryID')。但这只返回一个命名数组的平面数组,如下所示: [1 => ['title'=>'title 1'], 2 => ['title'=>'title3']] [1 => [['title'=>'title 1'], ['title' => 'title 2], 2 => [

我有一个带有多个
类别的Laravel表
帖子
。如何获取按
类别分组的所有
帖子
?我在做类似于
Post::where('userID',1)->groupBy('categoryID')
。但这只返回一个命名数组的平面数组,如下所示:

[1 => ['title'=>'title 1'], 2 => ['title'=>'title3']]
[1 => [['title'=>'title 1'], ['title' => 'title 2], 2 => [['title'=>'title 3']]]
如何返回这样的数组:

[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');
我能得到我想要的,但不知道是否有更好的方法?

您可能想要:

$catsWithPosts = Category::with(array('posts' => function($query){
    $query->select('title')->where('userID', 1);
}))->get();

假设您已经声明了
Post
Category
模型之间的正确关系。

谢谢,但是
userID
posts
上。这似乎不起作用。哪个表包含category_id?这似乎起作用。但是看看文档,我想知道我是否在根据我的类别数进行n次查询?不,它不是
n+
查询,因为它使用了即时加载技术。