2017-10-09 6 views
1
public function __construct() 
{ 
    view()->share('tags', DB::table('tags')->where('view', Auth::user()->view)->get()); 
    $this->middleware('auth'); 
} 

I erhalten:Laravel 5.5 Der Versuch, Eigentum von Nicht-Objekt zu erhalten

(1/1) Error Eigenschaft von nicht-Objekt

Warum bekommen Versuch? Wenn ich versuche, return Auth::user()->view; Ich habe . Aber wenn ich manuell ->where('view', 2) tippe, dann ist alles in Ordnung. Wie kann ich das beheben? Danke im Voraus.

Antwort

1

Try gettype (Auth::user()->views) zurück, wenn Ansichten seine eine ganze Zahl zu sehen. wenn nicht nur (int)Auth::user()->views es zu machen.

oder versuchen, es so zu einer Variablen zuzuweisen:

$views = (int)(Auth::user()->views); 

dann verwenden, ... ->where('view', $views)->get());

+0

überprüfen Sie besser den Feldtyp zu Integer in Ihrer Datenbank oder Sie könnten wieder das gleiche Problem haben. – Onix

1

verwendet Sie Auth-Middleware nach Auth :: Benutzer() -> Ansicht, es falsch

public function __construct() 
{ 
    $this->middleware('auth'); // firstly auth check , after that can use Auth::user() , before them Auth::user() return null and you cant use ->view on null , when ErrorException Trying to get property of non-object 
    view()->share('tags', DB::table('tags')->where('view', Auth::user()->view)->get()); 
} 

Ihre Benutzer bitte

Auth :: check nicht unterzeichnet überprüfen ()

und danach

Auth :: Benutzer() -> Ansicht

+0

Ja, ich überprüft haben. In __construct() erhalte ich falsch. In anderen Funktionen stimmt. – DisplayName

+0

Ich habe Code-Position sowieso geändert .. – DisplayName

+0

auf __construct bitte dd (Auth :: user()) und sehen Sie das Ergebnis, wenn Sie null zurückgeben, müssen Sie die Middleware – honarkhah

Verwandte Themen