[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Antonio Fernandes
Criador Antonio Fernandes 31/08/2018

Criamos a rota:
Route::resource('city/{id}/airports', 'AirportController');

e na chamada fizemos
{{ route('airports.index', $city->id )}}

e na url aparece city/5/airports

MInha duvida é:

Como o city é chamada uma vez que indicamos na roda apenas airports.metodo + id

Manager Carlos Ferreira 31/08/2018

Olá, Antonio!

A url da sua rota é "/city/{id}/airports"
O {id} indica que é valor dinâmico, uma variável.

Quando fazemos isso: {{ route('airports.index', $city->id )}}
O Laravel pega o valor $city->id e substitui em {id} na rota.

Também é possível especificar qual parâmtro dinâmico da URL é para substuir, exemplo:
{{ route('airports.index', ['id' => $city->id]) }}

Dúvidas sobre rotas, recomendo:
https://www.especializati.com.br/tutorial/curso-de-laravel-53-rotas
https://blog.especializati.com.br/rotas-no-laravel/

Qualquer dúvida, só retornar! =D

Carlos Ferreira
Criador Antonio Fernandes 31/08/2018

Quanto ao parâmetro eu compreendi, o que nao entendi é que no aquivo de rotas indicamos

Route::resource('city/{id}/airports', 'AirportController');

mas chamamos apenas airports passando o parêmetro e na url do navegador ela a city é mostrada na url...

 

Antonio Fernandes
Manager Carlos Ferreira 31/08/2018

No caso esse parâmetro {id} espera exatamente o ID da cidade. Por isso quando usamos essa rota passamos o ID da cidade, e não do aeroporto.

Se quiser deixar esse ID com um nome mais coerente, assim, pode:
Route::resource('city/{idCity}/airports', 'AirportController');

Dessa forma estamos gerenciando os aeroportos ligados a uma determinada cidade, que é identificada através de seu ID.

Ficou claro? Me retorna! :)

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!