Разрешить вложенную коллекцию в Laravel Resource - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть два отношения один-ко-многим в Laravel, где Города (id, name, region_id) <- Регионы (id, name, country_id) <- Страны (id, name). </p>

Мне нужно создать ресурс, который может возвращать все города во всех регионах в данной стране, например:

"results": [
{
    "region": 1,
    "name": "Abruzzo",
    "cities": {
        {"id": 1,
         "name": "Aaa"},
         {"id": 2,
         "name": "Aab"},
     },
 },
        {
    "region": 2,
    "name": "Basilicata",
    "cities": {
        {"id": 1,
         "name": "Baa"},
         {"id": 2,
         "name": "Bab"},

    },
 }

только для одного уровня отношений, я бы создал RegionResource, RegionsResourceи использовать метод Resolve () внутри, скажем, ResultsResource, например:

'regions' => (new RegionsResource($country))->resolve(),

, но я не могу сделать это рекурсивным способом для обоих уровней.Кто-нибудь может мне помочь?Спасибо.

1 Ответ

0 голосов
/ 28 ноября 2018

Решено благодаря моему коллеге.Вот код:

    $cities = collect();

    $regions->each(function($region) use(&$cities) {
        $cities->push($region->cities);
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...