ORM: список связанных элементов - PullRequest
0 голосов
/ 29 августа 2018

Я пытался использовать ORM, чтобы найти список провинций и их городов.

результат такой же, как этот список:

"provinces": [
    {
        "name": "Prov.1",
        "Cities": {
            "name": "City.1"
        }
    },
    {
        "name": "Prov.1",
        "Cities": {
            "name": "City.2"
        }
    },
]

что ожидается:

"provinces": [
    {
        "name": "Prov.1",
        "Cities": [
            {
                "name": "City.1"
            },
            {
                "name": "City.2"
            }
        ]
    },
]

б / у ORM:

Provinces::find('all', [
    'with' => ['Cities']
]);

1 Ответ

0 голосов
/ 29 августа 2018

Что-то вроде

$array = [];
foreach($provinces as $province){
    $key = $province['name'];
    if(!isset($array[$key])){
       $array[$key] = [
         'name' => $province['name'], 
         'Cities' => [
              [ 'name' => $province['Cities']['name']];
          ]
       ];
    }else{
       $array[$key]['Cities'][] = ['name' => $province['Cities']['name']];
    }
}

 //strip keys
$array = array_values($array);

Поскольку у вас нет реального массива PHP, я просто догадываюсь, каким он должен быть.

...