Коллекция Laravel, сгруппированная по массиву свойств - PullRequest
0 голосов
/ 09 декабря 2018

Мой начальник попросил у меня отчет, и я не хочу делать много циклов, чтобы получить информацию, если я смогу сделать это в одном предложении Eloquent.У меня есть эта модель:

{
   "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 и имеет поле Json с именем datos, которое приводится к массиву каждый раз, когда модель создается с использованием защищенного атрибута $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' );

Любая помощь будет оценена.

...