Recuperando relacionamento User
[Finalizado Pelo Aluno]
Boa tarde Carlos, tranquilo?
No curso foi demonstrado que Tenant tem vários usuário e na consulta do mesmo foi feito um filtro por scopo global, no meu senário eu modelei que um Tenant tem vário users e um User tem vário tenants... sendo assim implemente o método booted() de tenant dessa forma:
porém apresenta esse erro:
BadMethodCallException
como eu poderia implementar o método booted nesse senário?
Att.
Marcos Santos
Eu consegui fazer esse procesos no ClienteController assim:
mas não conseguir usando o ClienteScope... existe ainda um segundo desafio, eu tenho que ter um segundo nível de autorização, tipo, um Cliente tem várias filiais, ou seja, tem usuário (gerente) só terá acesso a uma filial apenas, embora o cliente tenha várias filiais... eu pensei em colocar o cliente selecionado a sessão, algo do tipo Auth::user() que serviria como parâmetro limitador por consulta assim como o usuário autenticado é... mas não sei se é possível... tem alguma sugestão para esse cenário?
Att.
Marcos Santos
Olá, Marcos!
Tudo bem?
Isso daqui não funciona, porque nem todos os models possuem este relacionamento users(), por isso o erro.
No seu caso você tem uma relação de N:N de usuários com tenants, você tem uma tabela pivô para amarrar os users com o tenants, certo?
O que você pode fazer é listar os tenants do usuário (assim que autenticar), ele escolhe um (neste momento cria a sessão com este tenant), e você usa esse tenant para aplicar o filtro:
$tenant = session()->get('tenant');
$builder->where('tenant_id', $tenant ->id);
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!