![](/img/trans.png)
[英]How to pass first element of nested array using resource collection 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.