Busca usando o With() para um terceiro nível
[Finalizado Pelo Aluno]
Gostaria de saber como faço pra usar o WITH na terceira camada.
No caso do segundo nível, por exemplo:
$countries = Country::where('name', 'LIKE', "%{$keySearch}%")->with('states')->get()
No exemplo acima ele vai buscar os "States" de acordo com o With('states') determinado na consulta dos Country. Mas quero fazer a busca juntamente com os relationships das "Cities" também, não só dos "States"
Olá, Kelvis!
Tudo bem?
Agora vai uma dica que vai te surpreender ainda mais com o Laravel.
Para uma consulta nesse formato o Laravel dispõe de recursos, nem precisa montar uma query SQL com join.
Basta incluir no método with() a próximo nível da relação.
Ex: ->with('states.cities')
$countries = Country::where('name', 'LIKE', "%{$keySearch}%")->with('states.cities')->get();
Neste caso, traz a relação entre country e states, e já traz as cities vinculadas a cada estado.
Pra acessar pode fazer assim:
#view
@foreach ($countries as $country)
País: {{ $country->name }}
@foreach ($country->states as $state)
Estado do país {{ $country->name }}: {{ $state->name }}
@foreach ($state->cities as $city)
Cidade do estado {{ $state->name }}: {{ $city->name }}
@endforeach
@endforeach
<hr>
@endforeach
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!