通过属性对JSON对象进行分组,并将其拆分为数组PHP | Laravel
我正在尝试生成以下查询:通过属性对JSON对象进行分组,并将其拆分为数组PHP | Laravel,php,laravel,Php,Laravel,我正在尝试生成以下查询: Model::where('id',$id)->groupBy('type')->get(); 我得到以下错误 SELECT列表不在GROUP BY子句中,并且包含未聚合的列“db.table.id”,该列为 功能上不依赖于GROUP BY子句中的列;这与sql\u mode=only\u full\u组不兼容 下面是没有分组的结果。我尝试按类型分组,并为每个类型获取一个数组,数组中包含对象 { 'result':[ {
Model::where('id',$id)->groupBy('type')->get();
我得到以下错误
SELECT列表不在GROUP BY子句中,并且包含未聚合的列“db.table.id”,该列为
功能上不依赖于GROUP BY子句中的列;这与sql\u mode=only\u full\u组不兼容
下面是没有分组的结果。我尝试按类型分组,并为每个类型获取一个数组,数组中包含对象
{
'result':[
{
id:'1',
name:first,
type:animal
},
{
id:'2',
name:second,
type:animal
},
{
id:'3',
name:third,
type:human
}
]
}
我正在努力实现的目标:
{
[
{type:'animal',
data:[..first,second]
},
{
type:'human',
data:[...third],
}
]
}
只有
groupBy
可以实现这一点吗?它不一定要精确,但我可以通过任何方式轻松地按类型拆分项目,并将其作为一个键吗?您可以让集合执行groupBy
:
$items = Model:....->get();
$grouped = $items->groupBy('type');
然后,每个“类型”都有一个元素,其中包含与该类型匹配的每个对象的集合