Laravel集合按属性数组分组

时间:2018-12-08 23:32:30

标签: arrays laravel-5 collections group-by

我的老板要求我提供一份报告,如果我能用一个口才的句子来做,我不想做很多循环来获取信息。我有这个模型:

{
   "id":1,
   "persona_id":75,
   "localidad_id":1,
   "datos":{
      "web":null,
      "lider":{
         "persona":"18"
      },
      "redes":{
         "email":null
      },
      "activa":"true",
      "nombre":"Comisión Ambiental Local - Usaquén",
      "asistente":"true",
      "secretaria":"true"
   },
   "created_at":"2018-06-15 20:01:40",
   "updated_at":"2018-11-02 20:37:02"
}

该模型称为Instancia,它有一个名为datos的Json字段,每次使用受保护的属性$casts创建模型时,该字段都会强制转换为数组。

datos数组中,我有一个名为lider的键,在其中有一个名为persona的键。如果可能,我希望按该参数persona对我的收藏进行分组。

我尝试了几种方法,但没有奏效:

$instancias = Instancia::where( 'datos->lider->persona', '<>', null )->get()->groupBy( 'datos->lider' );

该人现在返回由""父母分组的整个收藏集。

$instancias = Instancia::where( 'datos->lider->persona', '<>', null )->get()groupBy( 'persona' );

任何帮助将不胜感激。

0 个答案:

没有答案