2016-11-01 6 views
1

ErrorException: Trying to get property of non-object -- laravel 5.3Der Versuch, Eigentum von Nicht-Objekt zu erhalten Laravel 5,3

Ich habe Probleme bekommen die Daten aus Fremdschlüssel zu bekommen. machen bereits Beziehung zwischen zwei Tabellen, aber immer noch Fehler gab mir diese Trying to get property of non-object

-Controller

public function show($id){ 
     $activiter = Activiter::find($id); 
     return view('activiter.show',compact('activiter')); 
    } 

show.blade.php

@foreach($activiter as $data) 
    @if($data->eleves) 
     <td> 
     {{ $data->eleves->nom }} 
     </td> 
     <td> 
     {{ $data->eleves->prenom }} 
     </td> 
     <td> 
     {{ $data->eleves->date_naissance }} 
     </td> 
    @endif 
@endforeach 

Modell

public function eleves(){ 

     return $this->hasMany('App\Eleve'); 
    } 
+0

Könnten Sie das Activiter Modell hinzufügen? –

+0

Bei welcher Zeile nicht. Sie bekommen Fehler. –

+0

Activiter Modell hinzugefügt :( @AmitGupta ich bekomme ** Fehler ** vor allem, wenn ich die Methode von Modell Aktivator wie folgt aufgerufen: $ Daten-> Eleves in show.blade.php – meduprise

Antwort

1

Activiter::find($id) gibt ein Model-Objekt zurück, so dass Sie es nicht vorhersagen können.

Ihre Blade-Datei sollte wie sein:

@foreach($activiter->eleves as $data) 
    <td> 
     {{ $data->nom }} 
    </td> 
    <td> 
     {{ $data->prenom }} 
    </td> 
    <td> 
     {{ $data->date_naissance }} 
    </td> 
@endforeach 

Und sollten Sie findOrFail() diese Daten verwenden, um zu bestätigen, abgerufen wird korrekt als:

`$activiter = Activiter::findOrFail($id);` 
+0

** Danke ** es hat funktioniert – meduprise

1

Versuchen Hinzufügen ->get().

$activiter = Activiter::find($id)->get();

+0

** Nichts geändert ** aber die Nachricht geändert in "Undefinierte Eigenschaft: Illuminate \ Database \ Eloquent \ Collection :: $ Typ" – meduprise

Verwandte Themen