Problema
Sinusubukan kong ibalik ang pangalan ng gumagamit sa aking artikulo at nakukuha ko ang ErrorException: Trying to get property of non-object
. Ang aking mga code:
Mga Modelong
1. Balitaan
klaseBalitaumaabotModelo
{
pampubliko pagpapaandarnai-post sa pamamagitan ng()
{
bumalik ka $ ito->pagmamay-ariTo('App User');
}
protektado $ talahanayan = 'balita';
protektado $ mapupunan = ['nilalaman ng balita', 'newsTitle', 'postedBy'];
}
2. Gumagamit
klaseGumagamitumaabotModelonagpapatupadMaaaring patunayan ang Kontrata,
May pahintulot na Kontrata,
CanResetPasswordContract
{
gamitinMaaaring patunayan,Napapahintulutan,CanResetPassword;
protektado $ talahanayan = 'mga gumagamit';
protektado $ mapupunan = ['pangalan', 'email', 'password'];
protektado nakatago si $ = ['password', 'remember_token'];
}
Controller
pampubliko pagpapaandaripakita ang Artikulo($ slug){
$ artikulo =Balita::kung saan('slug', $ slug)->firstOrFail();
bumalik katingnan('artikulo', siksik ('artikulo'));
}
Talim
{{ $ artikulo->nai-post sa pamamagitan ng->pangalan }}Kapag sinubukan kong alisin ang pangalan sa talim {{ $article->postedBy }}
inilalabas nito ang id
, ngunit kapag sinubukan kong idagdag ang -> pangalan doon sinasabi nito Trying to get property of non-object
ngunit mayroon akong isang pangalan sa patlang sa aking mesa at isang User
modelo May nawawala ba ako?
Solusyon
Bumabalik ba ang iyong query ng array o object? Kung itatapon mo ito, maaari mong malaman na ito ay isang array at ang kailangan mo lang ay isang access sa (()) sa halip na isang pag-access sa object (->).
Pangalawang opinyon
$ artikulo->poster->pangalansa
$ artikulo->poster['pangalan']Susunod ay upang magdagdag ng isang pangalawang parameter sa aking pagmamay-ariTo, mula sa
bumalik ka $ ito->pagmamay-ariTo('App User');
sa
bumalik ka $ ito->pagmamay-ariTo('App User', 'user_id');kung saan user_id
ay ang aking banyagang susi sa talahanayan ng balita.