Rezolvat - Încercarea de a obține proprietatea non-obiectului - Laravel

Solved Trying Get Property Non Object Laravel



Problemă

Încerc să redau numele utilizatorului în articolul meu și primesc ErrorException: Trying to get property of non-object . Codurile mele:

Modele

1. Știri







clasăȘtirise extindeModel
{
public funcţiePostat de()
{
întoarcere $ asta->aparține lui(„Aplicație Utilizator”);
}
protejat $ masa = 'știri';
protejat $ completabil = [„newsContent”, 'newsTitle', 'Postat de'];
}

2. Utilizator



clasăUtilizatorse extindeModelunelteAuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
utilizareAutenticabil,Autorizabil,CanResetPassword;

protejat $ masa = „utilizatori”;

protejat $ completabil = ['Nume', 'e-mail', 'parola'];

protejat $ ascuns = ['parola', 'remember_token'];

}

Controlor

public funcţieshowArticle($ slug)
{
$ articol =Știri::Unde('melc', $ slug)->firstOrFail();
întoarcerevedere('articol', compact ('articol'));
}

Lamă

{{ $ articol->Postat de->Nume }}

Când încerc să elimin numele din lama {{ $article->postedBy }} generează id , dar când încerc să adaug numele -> acolo scrie Trying to get property of non-object dar am un nume de câmp în tabelul meu și un User model. Am pierdut ceva?



Soluţie

Interogarea dvs. returnează matrice sau obiect? Dacă îl eliminați, s-ar putea să descoperiți că este o matrice și tot ce aveți nevoie este un acces la matrice ([]) în loc de un acces la obiect (->).





A doua opinie

$ articol->poster->Nume

la

$ articol->poster['Nume']

Următorul este să adaug un al doilea parametru în apartenența mea la, de la



întoarcere $ asta->aparține lui(„Aplicație Utilizator”);

la

întoarcere $ asta->aparține lui(„Aplicație Utilizator”, 'numele de utilizator');

în care user_id este cheia mea străină în tabelul de știri.