Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
通过属性对JSON对象进行分组,并将其拆分为数组PHP | Laravel_Php_Laravel - Fatal编程技术网

通过属性对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');
然后,每个“类型”都有一个元素,其中包含与该类型匹配的每个对象的集合