首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按大小分组在laravel php中作为单独的数组

按大小分组在laravel php中作为单独的数组
EN

Stack Overflow用户
提问于 2017-10-13 15:47:35
回答 2查看 1K关注 0票数 3

我的桌子上有size_chart

代码语言:javascript
复制
| id | category | size | created_at          | updated_at | deleted_at |
+----+----------+------+---------------------+------------+------------+
|  1 | Regular  | S    | 2017-10-11 09:35:14 | NULL       | NULL       |
|  2 | Regular  | XS   | 2017-10-11 09:39:34 | NULL       | NULL       |
|  3 | Regular  | M    | 2017-10-11 09:39:37 | NULL       | NULL       |
|  4 | Regular  | xxl  | 2017-10-11 13:03:52 | NULL       | NULL       |
|  5 | Regular  | l    | 2017-10-11 13:03:59 | NULL       | NULL       |
|  6 | Regular  | xm   | 2017-10-11 13:04:03 | NULL       | NULL       |
|  7 | Small    | em   | 2017-10-11 13:05:04 | NULL       | NULL       |
|  8 | standard | em   | 2017-10-13 07:16:50 | NULL       | NULL       |

在这个表中,我有一些样本数据。我需要根据类别For.eg对大小进行分组

代码语言:javascript
复制
Regular = [s,xs,M,l,xm]
standard = [em]
small = [em]

如何在我的php控制器函数上实现这一点

代码语言:javascript
复制
public function sizeFetch(Request $request){
        $cat_id = $request->id;
        $size_id = SizeCategory::where('category_id',$cat_id)->pluck('size_id');
    $size_details = SizeChart::whereIn('id',$size_id)->get();

        return $size_details;
    }

现在这个函数返回如下所示

代码语言:javascript
复制
[
{
id: 1,
category: "Regular",
size: "S",
created_at: "2017-10-11 09:35:14",
updated_at: null,
deleted_at: null
},
{
id: 2,
category: "Regular",
size: "XS",
created_at: "2017-10-11 09:39:34",
updated_at: null,
deleted_at: null
},
{
id: 3,
category: "Regular",
size: "M",
created_at: "2017-10-11 09:39:37",
updated_at: null,
deleted_at: null
},
{
id: 7,
category: "Small",
size: "em",
created_at: "2017-10-11 13:05:04",
updated_at: null,
deleted_at: null
}
]

请帮我解决这个问题

EN

回答 2

Stack Overflow用户

发布于 2017-10-13 16:11:51

如果你在得到结果后进行分组,这可能会更容易。在查询中进行分组的问题是它并没有真正执行您所期望的操作。( SQL中的GROUP BY可能应该被称为AGGREGATE BY )

代码语言:javascript
复制
public function sizeFetch(Request $request){
    $cat_id = $request->id;
    $size_id = SizeCategory::where('category_id',$cat_id)->pluck('size_id');
    $size_details = SizeChart::whereIn('id',$size_id)
        ->get()->groupBy("category") //Group by category
             ->map(function ($group) {
                   return $group->pluck("size"); //Pluck size from each category member
             });

    return $size_details;
}
票数 2
EN

Stack Overflow用户

发布于 2017-10-13 15:51:30

GroupBy可以帮助你。SizeCategory::where('category_id',$cat_id)->groupBy('size')->pluck('size_id');

了解更多information

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46725009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档