2016-04-23 10 views
1

ich diesen FehlerLaravel und Blade-Fehler

Trying to get property of non-object (View: /home/yash/website/resources/views/gamesover.blade.php) 

ich eine Tabelle Benutzer und eine Tabelle gamesovers und beide haben ihre jeweiligen Modelle auch nämlich User und Gamesover.

Jetzt in gamesovers Tabelle habe ich eine Spalten Initiator.

Wenn ein get-Anforderung an den View-Controller gesendet wird, seinen Code in ist

public function gamesover() 
{ 
    $user = Auth::user(); 
    $games = Gamesover::where('initiator', $user->username)->orWhere('acceptor', $user->username)->get(); 
    return view('gamesover', compact('games','user')); 
} 

Und der Blick

@foreach($games as $game) 
{{ DB::table('users')->where('username',$game->initiator)->first()->id }}  
@endforeach 

In der Klinge Syntax geschrieben oben geben Sie mir den Fehler

Trying to get property of non-object (View: /home/yash/website/resources/views/gamesover.blade.php) 

** Es gibt keine Fehler mit der Datenbank und die verwendeten Bezeichner haben keine Rechtschreibung und Fallfehler

Wenn ich dies mit der dd() Funktion in Laravel, ich bekomme keine Fehler. Auch wenn ich den ganzen Prozess in Tinker versuche dann bekomme ich auch keinen Fehler.

EDIT 1: Wenn ich $game->initiator mit einem Benutzernamen mit Anführungszeichen ersetzen, bekomme ich keine Fehler, und wenn ich meinen Code in Ansicht ändern

@foreach($games as $game) 
{{$initiator = 'yash20'}} // yash20 is a username already in users database 
{{ DB::table('users')->where('username','$initiator')->first()->id }} 
@endforeach 

dann auch ich Fehler bekommen Bitte kann mir jemand führen, was Falsch in der Blade-Anweisung oder ein Syntaxfehler ist aufgetreten.

Wenn Sie andere Details benötigen, geben Sie bitte den Kommentar ein Ich werde die Frage so bald wie möglich aktualisieren.

Antwort

0

Wahrscheinlich versuchen Sie ID aus der null zu bekommen. Oder Ihre Suchanfrage findet manchmal keinen Benutzer.

Versuchen @foreach zu wickeln, Benutzer-ID und die Abfrage mit diesen Bedingungen erhalten:

@if(!empty($games)) 
    @foreach($games as $game) 
     @if(!isset($game->initiator)) 
      {!! $user = DB::table('users')->where('username', $game->initiator)->first() !!}    
      @if(!is_null($user)) 
       echo $user->id; 
      @endif 
     @endif 
    @endforeach 
@endif 

Versuchen sie Schritt für Schritt zu entfernen, und Sie werden feststellen, wo das Problem ist.

+0

Neuer Fehler: - 'htmlentities() erwartet Parameter 1 als String, Objekt als gegeben ' –

+0

Versuchen Sie' {!! !!} 'anstelle von' {{}} '. Wenn es nicht geholfen hat, hängt der Fehler nicht mit diesem Code zusammen und Sie sollten in andere Teile der Blade-Ansicht schauen. –

+0

Nun Fehler ist aufgrund dieser Blade-Syntax und ich wusste dies durch den Fehler "ErrorException in 849c2df06779b7e62731ecd7e75bb8c6ffc9c648.php Zeile 5: " und die Zeile 5 in der gegebenen Ansicht ist derjenige, über den ich in der Frage gefragt –