Problema
Estou tentando repetir o nome do usuário em meu artigo e estou recebendo o ErrorException: Trying to get property of non-object
. Meus códigos:
Modelos
1. Notícias
classeNotíciaestendeModelo
{
público funçãopostado por()
{
Retorna $ isto->pertence a('App Usuário');
}
protegido $ mesa = 'notícia';
protegido $ fillable = ['newsContent', 'newsTitle', 'postado por'];
}
2. Usuário
classeDo utilizadorestendeModeloimplementosAuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
usarAutenticável,Autorizável,CanResetPassword;
protegido $ mesa = 'Comercial';
protegido $ fillable = ['nome', 'o email', 'senha'];
protegido $ escondido = ['senha', 'lembrar_token'];
}
Controlador
público funçãoshowArticle($ slug){
$ artigo =Notícia::Onde('lesma', $ slug)->firstOrFail();
Retornavisualizar('artigo', compactar ('artigo'));
}
Lâmina
{{ $ artigo->postado por->nome }}Quando tento remover o nome na lâmina {{ $article->postedBy }}
ele produz o id
, mas quando tento adicionar o -> nome lá ele diz Trying to get property of non-object
mas eu tenho um nome de campo em minha tabela e um User
modelo. Estou esquecendo de algo?
Solução
A sua consulta está retornando array ou objeto? Se você jogá-lo fora, pode descobrir que é um array e tudo o que você precisa é um acesso de array ([]) em vez de um acesso de objeto (->).
Segunda opinião
$ artigo->poster->nomepara
$ artigo->poster['nome']Em seguida, é adicionar um segundo parâmetro em meu belongsTo, de
Retorna $ isto->pertence a('App Usuário');
para
Retorna $ isto->pertence a('App Usuário', 'ID do usuário');em que user_id
é minha chave estrangeira na tabela de notícias.