Tenant_non_object
[Concluído]
Boa noite, professor!
Até achei que havia aberto ticket, mas não o econtrei. Estou com esse erro tentando pegar propriedade 'tenant_id' de não objeto. Acho que descobri o erro. O erro está sendo apontado para o método getTenantIdentify(). Só que acontece isso na rota do site \SiteController@index
No método index fiz: $companies= Company::get() - que só será cadastrado (em outro controller) depois do usuário estiver cadastrado (tem que cadastrar tenant no formulário seguindo o Larafood) - mas aqui por esse controller SiteController não há usuário logado e, consequentemente, tenant_id....
Ou elimino os companies dessa rota e fico com a outra rota (admin), ou replico o código de tenant para o site.
Será?
Olá, tudo bem?
Tem o código no GitHub?
Me manda prints também (https://imgur.com/upload)
Preciso de mais detalhes para conseguir te ajudar.
No aguardo.
Boa noite, professor.
Lembrando que uso as mesmas Models para os dois controllers.
https://imgur.com/a/yhJVze2
Tem um print do erro? Quero ver qual a rota e detalhes do erro, porque assim fica mais fácil chegar no código do erro (caso contrário perco muito tempo analisando todo o código)
Bom dia, professor!
Trying to get property 'tenant_id' of non-object
No gerenciadorTenant.php linha 12
O gerenciadorTenant = MenagerTenant
Acredito que o observero ou o cadastro de tenant para registrar esteja exigindo o 'tenant_id', mas pela rota SiteController não há o tratamento do tenant seguindo o curso Larafood. Já pela tora do admin... sim...
Eu apaguei no SiteController, nos métodos, tudo referente a company e survey (segui a aula de category do larafood) e não deu erro. E funciona direito, pois o usuário vai cadastrar a company e o survey no tenant dele. Não pode deletar, atualizar o company e survey de outro tenant...
Quando eu saio do sistema, volta a dar o erro acima, porque o home segue o sitecontrolleAch qr...o /site
Acho que é isso...
O seu projeto tem particularidades que vão além do curso, por isso preciso do print para te ajudar a resolver. Quero ver qual a rota e detalhes do erro!
Boa noite, professor!
Eu fiz print da rota e detalhes https://imgur.com/a/jMDMWFT
No "namespace" site eu seguia o curso agência de turismo. No namespace admin, eu segui o Larafood por causa do Tenant, parando no módulo categoria. Ao invés de criar uma tabela categoria, eu usei o código relativo ao Tenant e scopo em duas tabelas minhas: company e survey. Só isso...
Não sei se os detalhes do erro atende...
Quero ver qual a rota e detalhes do erro (manda um print fullscreen)!
Boa noite, professor!
Eu fiz o print e enviei pelo https://imgur.com/a/QxvZw4G duas imagens...
Dessa forma para enviar?
Abc
Agora sim, um print mais mais claro, obrigado.
Tem uma incoerências nas suas rotas, veja:
Route::get('/site', 'Site\SiteController@index')->name('home');
Route::prefix('site')->middleware('auth')->group(function () {
[...]
});
Uma rota com o mesmo nome do grupo, ficou estranho.
-------------------
No seu GerenciadorTenant é onde está gerando exception, neste código aqui:
public function getIdentify()
{
return auth()->user()->tenant_id;
}
É porque está recuperando o tenant_id de um user não autenticado (algum model está usando isso).
Uma "solução", seria:
public function getIdentify()
{
if (!auth()->check())
return null;
return auth()->user()->tenant_id;
}
Boa noite, professor!
É o cara!
Até lembro que foi falado na aula o "if "para checar...mas vi fantasmas. A toda hora kkk
Quase desisti do print... parecia tão simples que traria a informação desejada...mas traz...
Vou revisar o nome da rota... Uma parte do projeto eu segui o curso da agência de turismo, aproveitando as tabelas de estados e cidade. E o último módulo quase todo. Mas complicou na filtragem utilizando as origens e os destinos que não tinham utilidades para mim. A outra parte eu segui o Larafood. Não quis usar o adminLTE do LaraFood. Fui fazendo confusão, mas fui aprendendo ao tirar as dúvidas com o professor nota 10!
Obrigado
Já comecei outro. Laravel 8!
Conta comigo. TMJ!
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!