Não sei se estou fazendo corretamente
[Concluído]
Não sei se estou fazndo da forma correta, pq só recebo os IDs da tabela de apoio e não os itens da tabela relacionada.
Tenho 4 tabelas, Companies, Branches, Clients e Locations e preciso fazer o seguinte relacionamento.
A tabela Branches tem que ter um relacionamento com a table Company (Uma Companies pode ter várias Branches (OneToMany) mas uma Branch só pode ter uma Company), ainda na tabela Branches tem que ter um relacionamento com a tabela Locations (uma Branch só pode ter uma Location (OneToMany), porque uma Location pode ter várias Branches).
Agora na tabela Clients preciso ter um relacionamento com a tabela Branches, onde uma Branch pode ter vários Clients e um Client pode ter varias Branches.
Como falei não sei se estou fazendo corretamente o meu código. Vou disponibiliza-lo abaixo:
Model Company
public function branches()
{
return $this->hasMany(Branch::class);
}
public function company()
{
return $this->belongsTo(Company::class);
}
public function location()
{
return $this->belongsTo(Location::class);
}
public function clients()
{
return $this->belongsToMany(Client::class);
}
Model Location
{
return $this->hasMany(Branch::class);
}
Model CLient
BranchController.php
public function show($id)
{
$branch = $this->repository->find($id);
$clients = $branch->clients;
$companies = Company::all();
$locations = Location::all();
if (!$branch)
return redirect()->back();
return view('branch.show', compact('branch', 'companies', 'locations', 'clients'));
}
Sei que não é a melhor forma, mas no caso da Company e Location, estou fazendo a lógica no tamplate show.blade.php
E quero fazer o mesmo para o show.blade.php, só que mostrar as branches relacionadas a esse client. Só que não estou conseguindo obter os resultados. Só tenho o retorno dos IDs da tabela de apoio.
Olá, Daniel!
Tudo bem?
Você tem o MER do banco de dados? (print: https://uploaddeimagens.com.br/)
Tem o código no GitHub? Fica mais fácil para mim ter uma visão melhor dos relacionamentos.
---
Você pode reduzir a quantidade de consultas ao banco, se usar o método with para buscar os relacionamentos entre as tabelas (definidos nos models):
$branch = $this->repository->with(['company.branches', 'location', 'clients'])->find($id);
---
Dica de próximo curso: https://academy.especializati.com.br/curso/laravel-api-com-cache
Oi Carlos,
Vou fazer o update do projeto no Github e te passo o link, vou ver esse curso tb. Obrigado
O que quer dizer com MER do banco de dados? kkkk
Seria a estrutura das tabelas e relacionamento entre elas, algo assim: https://www.next4.com.br/wp-content/uploads/MER_SISTEMASWEB-1.png
Oi Carlos,
Subi no Github. Não achei a appliacar a sua sugestão, não consgui mexer nele hoje, só mais tarde.
Obrigado
Pode acessar aqui:
https://github.com/Drummond-Dev/controle
Carlos, obrigado.
Consegui colcoar para funcionar utilizando a sua sugestão. Apliquei nas Branches e agora vou tentar nos Clients.
Qual o problema com Clients mesmo? Não está conseguindo puxar eles? Tem algum erro?
Me passa mais detalhes por favor :)
Oi Carlos,
Não tive problema em aplicar o mesmo conceito para os clientes, agora está tudo funcionando corretamente. Obrigado mais uma vez pela ajuda.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!