laravel groupby with array

时间:2017-10-10 11:41:32

标签: php mysql arrays laravel laravel-5

我发布了类别

 $response=Post::groupBy('post_category','id')->get();

上述查询将按类别的顺序返回所有类别的帖子。

现在我需要将所有帖子分组。现在我有一个可能的解决方案是我需要循环响应和内部循环我必须检查类别和创建数组。 是否有选项可以在查询中进行groupconcat。?

我的问题是:是否有可能创建一个类别数组,因此数组的键是category_name而且类别中的所有帖子都是

更新

发布表

id | post_name | post_description | category_name | etc..

此类别名称未使用任何其他表格,因为其预定义值如新闻,体育,板球等...当我在categoryname中插入新闻,体育,政治时。

2 个答案:

答案 0 :(得分:3)

您无法通过查询执行此操作,SQL group by将只保留一个类别的帖子,因此您的查询不正确。你在寻找的是:

Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] image=stream.toByteArray();

return image

它将返回由" post_category'键入的数组的集合。并包含此类别中的所有帖子。

答案 1 :(得分:2)

以下代码将返回具有唯一category_name

的帖子的键值对
$response = Post::get()->groupBy('category_name');
/*
    [
        'category_1' => [
            ['category_name' => 'category_1', 'post_name' => 'Chair'],
            ['category_name' => 'category_1', 'post_name' => 'Bookcase'],
        ],
        'category_2' => [
            ['category_name' => 'category_2', 'post_name' => 'Desk'],
        ],
    ]
*/