【问题标题】:Nested collection resolve in Laravel ResourceLaravel 资源中的嵌套集合解析
【发布时间】:2019-04-30 10:31:44
【问题描述】:

我在 Laravel 中有两个一对多的关系,其中 Cities(id, name, region_id)

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

"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 并在一个比方说 ResultsResource 中使用 Resolve() 方法,例如:

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

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

【问题讨论】:

    标签: php laravel api collections resources


    【解决方案1】:

    感谢我的同事解决了。代码如下:

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

    【讨论】:

      猜你喜欢
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多