Concat两列与laravel雄辩

时间:2019-06-10 10:33:59

标签: laravel eloquent concat

我有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);

我想与他们各自的国家联系。像:英国伦敦

1 个答案:

答案 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);