I have a Laravel table posts
with multiple categories
. How can I fetch all the posts
grouped by categories
? I was doing something like Post::where('userID', 1)->groupBy('categoryID')
. But this only returned a flat array of named arrays like this:
[1 => ['title'=>'title 1'], 2 => ['title'=>'title3']]
How can I return an array of arrays like this:
[1 => [['title'=>'title 1'], ['title' => 'title 2], 2 => [['title'=>'title 3']]]
UPDATE: I'm currently doing a join and then use Laravel's collection to sort it in php:
Post::join('categories', ....).where('userID', 1)->get()->groupBy('categoryID');
I am able to get what I want, but wondering if there is a better way?