3 Tabelas.
[Concluído]
Tenho 3 tabelas
Tabelas: Estados, Cidades, Clientes
estados 1:n cidades n:n clientes
Como eu faço p pegar cidades e clientes por estado já com o cliente em cada cidade?
Olá, Brendo!
Tudo bem?
Tenta ai:
public function nomeMetodo(State $state)
{
$state = $state->where('name', 'Minas')
->with(['cities.clients'])
->get()
->first();
dd($state);
}
Confere em "Relations" se retorna OK, inclusive as cidades.
Neste caso, no Model State precisa ter o relacionamento cities()
E no Model City precisa ter o relacionamento clients(), que retornaos clientes ligados a cidade.
Qualquer dúvida amigo, me retorna. Tá bom? :-)
Show! Eu so tenho acesso ao especializa ti academy porque n consigo acessar os outros cursos?
a está dando erro no laravel do academy, quando clico em Minhas dúvidas aparece o erro http://prntscr.com/j4xq3g
a e Esqueci Obrigado pela Ajuda
Ta dando erro Call to a member function addEagerConstraints() on null
$state = $this->state->with(['cities'])->get();
dd($state);
state
public function cities()
{
$this->hasMany('App\Models\Api\v1\City');
}
city
public function state()
{
$this->belongsTo('App\Models\Api\v1\State');
}
Olá, Brendo!
Obrigado por avisar do BUG, vou corrigir.
---------------------------------------------
Sobre o acesso a EspecializaTi Academy, sua assinatura está ativa, e você tem acesso a todos os cursos disponíveis nessa plataforma, todos estes: https://academy.especializati.com.br/cursos
---------------------------------------------
Que bom que a questão do ordenação funcionou com sucesso.
---------------------------------------------
Como está passando a classe como uma String, sem "importar" com use, precisa passar o "\", ou deixar assim (prefiro):
public function cities()
{
// Não esquece: use App\Models\Api\v1\City;
// Se tiver no mesmo namespace (diretório) não precisa fazer o "use"
// Pode fazer assim também: $this->hasMany('\App\Models\Api\v1\City');
$this->hasMany(City::class);
}
---------------------------------------------
Aguardo o seu retorno.
$this->state->with('cities')->find($id) ele retorna a cidade vazia se eu tirar o find ele retorna normal todos e as cidades de cada estado.
public function cities()
{
// Não esquece: use App\Models\Api\v1\City;
// Se tiver no mesmo namespace (diretório) não precisa fazer o "use"
// Pode fazer assim também: $this->hasMany('\App\Models\Api\v1\City');
$this->hasMany(City::class);
}
n funciona pq esqueci o return
depois adiciona uma funcão pra editar o comentario rs,
entao como eu edito? http://prntscr.com/j65xib
meu codigo está assim http://prntscr.com/j65xos
no index ele retorna assim http://prntscr.com/j65yp4
Realmente faltou o return, parabéns por ter percebido.
Se não estiver funcionando com o find() pode que o ID informado não existe, por isso não retornou nada.
Posta o código no GitHub, fica mais fácil para mim te ajudar.
Os prints que enviou, tem algum erro?
No caso, pelo que entendi está recuperando o registro "state" 12.
Se quiser editar este registro precisa implementar a lógica de update(), mais ou menos assim: https://academy.especializati.com.br/aula/curso-laravel-53-update
public function update(Request $request, $id)
{
$state = $this->state->find($id);
$update = $state->update($request->all());
[...]
}
Então ,consegui resolver masacho que essas dúvidas de lógica acabam com o tempo, com mais treino e experiência.
Resolvido Obrigado!
Com o tempo e prática vai pegando experiência e dúvidas de lógica serão mais facilmente resolvidas.
Continue na pegada que está.
Abs;
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!