Opgelost - Proberen eigendom van niet-object te krijgen - Laravel

Solved Trying Get Property Non Object Laravel



Probleem

Ik probeer de naam van de gebruiker in mijn artikel te herhalen en ik krijg de |__+_|. Mijn codes:

modellen

1. Nieuws







klasNieuwsstrekt zich uitModel
{
openbaar functieGepost door()
{
opbrengst $dit->hoort bij('AppGebruiker');
}
beschermd $tafel = 'nieuws';
beschermd $invulbaar = ['nieuwsInhoud', 'nieuwsTitel', 'Gepost door'];
}

2. Gebruiker



klasGebruikerstrekt zich uitModelimplementeertVerifieerbaar Contract,
Geautoriseerd Contract,
CanResetPasswordContract
{
gebruik maken vanVerifieerbaar,Geautoriseerd,CanResetPassword;

beschermd $tafel = 'gebruikers';

beschermd $invulbaar = ['naam', 'e-mail', 'wachtwoord'];

beschermd $verborgen = ['wachtwoord', 'remember_token'];

}

Controller

openbaar functietoonArtikel($slak)
{
$artikel =Nieuws::waar('naaktslak', $slak)->firstOrFail();
opbrengstweergave('artikel', compact ('artikel'));
}

Blad

{{ $artikel->Gepost door->naam }}

Wanneer ik de naam in de blade probeer te verwijderen |_+_| het geeft de |_+_| weer, maar wanneer ik de ->naam daar probeer toe te voegen, staat er |_+_| maar ik heb een veldnaam in mijn tabel en een |_+_| model. Mis ik iets?



Oplossing

Retourneert uw query een array of object? Als je het dumpt, zou je kunnen ontdekken dat het een array is en dat je alleen arraytoegang ([]) nodig hebt in plaats van een objecttoegang (->).





Tweede mening

$artikel->poster->naam

tot

$artikel->poster['naam']

Het volgende is om een ​​tweede parameter toe te voegen in mijn behoortTo, from



opbrengst $dit->hoort bij('AppGebruiker');

tot

opbrengst $dit->hoort bij('AppGebruiker', 'gebruikersnaam');

waarin |__+_| is mijn buitenlandse sleutel in de nieuwstabel.