提问者:小点点

Laravel资源中的嵌套集合解析


我在拉雷维尔有两个一对多的关系,那里的城市(身份证、姓名、地区号)

我需要创建一个资源,可以返回给定国家所有地区的所有城市,比如:

"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"},

    },
 }

对于一个级别的关系,我会创建一个区域资源,一个区域资源,并在一个,比如说,结果资源中使用Resolve()方法,比如:

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

但我似乎无法以递归的方式对这两个级别执行此操作。有人能帮我吗?谢谢


共1个答案

匿名用户

解决了感谢我的同事。这是代码:

    $cities = collect();

    $regions->each(function($region) use(&$cities) {
        $cities->push($region->cities);
    });