Нужно сделать
Laravel Resource
для модели Player и для City
с помощью
php artisan make:resource PlayerResource
В файлах прописать поля, какие хочешь получить в json (id, name и т.д.)
Затем переходишь в PlayerResource и подключаешь ресурс отношений в шапке
use App\Http\Resources\CityResource as CityResource;
Далее добавляешь поле отношений в Player:
public function toArray($request)
{
return [
// поля модели, которые нужно отдалть в json
'id' => $this->id,
'name' => $this->name,
// Отношения
'cities' => CityResource::collection($this->cities),
'city' => new CityResource($this->city)
];
}
В контроллере в шапке подключаем
use App\Http\Resources\PlayerResource as PlayerResource;
и передаем json в методе
public function getPlayers()
{
$players = Player::with('cities')->get();
return PlayerResource::collection($players);
}
соответственно данный метод фетчишь во VUE или передаешь пропсом в компонент из блейд.
В vue вызываешь, как player.cities или player.city
города должны быть видны в devtools