我有3张桌子,分别是1.国家/地区2.国家/地区3.citites
国家/地区包含ID和名称列。
州包含ID,名称和country_id列。
城市包含ID,名称和state_id。
我正在访问具有hasManyThrough()关系的城市。
关系:
public function cities()
{
return $this->hasManyThrough('App\Models\City','App\Models\State');
}
我如何获取citeis:
$countryObj = Country::where('name','like',$country.'%')->first();
$cities = $countryObj->cities->pluck('name');
return response()->json(['cities'=>$cities],200);
我想与他们各自的国家联系。像:英国伦敦
答案 0 :(得分:2)
执行此操作的一种方法是使用map。您可以将$countryObj
传递给它,然后只需将字符串连接在一起:
$countryObj = Country::where('name', 'like', $country . '%')->first();
$cities = $countryObj->cities->map(function ($city) use ($countryObj) {
return $countryObj->name . '-' . $city->name;
});
return response()->json(['cities' => $cities], 200);