繁体   English   中英

Laravel资源中的嵌套集合解析

[英]Nested collection resolve in Laravel Resource

我在Laravel中有两个一对多关系,其中Cities(id,name,region_id)<-Regions(id,name,country_id)<-Countrys(id,name)。

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

"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(),

但对于这两个级别,我似乎都无法以递归的方式做到这一点。 有人可以帮我吗? 谢谢。

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

    $cities = collect();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM