Конкат две колонны с красноречивым - PullRequest
0 голосов
/ 10 июня 2019

У меня есть 3 таблицы, 1. страны 2. штаты 3.сити

СТРАНЫ содержит столбцы идентификаторов, имен.

STATES содержит столбцы id, name, country_id.

CITIES содержит идентификатор, имя, идентификатор штата.

Я получаю доступ к городам с отношением hasManyThrough ().

Отношение:

public function cities()
{
   return $this->hasManyThrough('App\Models\City','App\Models\State');
}

Как я получаю цитату:

$countryObj = Country::where('name','like',$country.'%')->first();
$cities =  $countryObj->cities->pluck('name');
return response()->json(['cities'=>$cities],200);

Я хочу согласиться цитирует их соответствующие страны. Как: Великобритания-Лондон

1 Ответ

2 голосов
/ 10 июня 2019

Один из способов сделать это - использовать 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);
...