2016-11-01 1 views
1

ErrorException: Trying to get property of non-object -- laravel 5.3Попытка получить свойство необъектных Laravel 5,3

я получаю проблемы в получении данных от внешнего ключа. уже делают отношения между 2 таблицы, но все-таки ошибка дала мне этот Trying to get property of non-object

контроллер

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 

Модель

public function eleves(){ 

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

Не могли бы вы добавить модель Activiter? –

+0

На какой линии нет. вы получаете ошибку. –

+0

Модель активирующего устройства :( @AmitGupta Я получаю ** ошибку ** особенно, когда я назвал метод из активизации модели следующим образом: $ data-> eleves in show.blade.php – meduprise

ответ

1

Activiter::find($id) возвращает объект модели, поэтому вы не можете его запросить.

Ваш файл лезвие должно быть:

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

И вы должны использовать findOrFail(), чтобы подтвердить, что данные извлекаются правильно, как:

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

** Спасибо ** это сработало – meduprise

1

Попробуйте добавить ->get().

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

+0

** Ничего не изменилось ** , но сообщение изменено на "Неопределенное свойство: Illuminate \ Database \ Eloquent \ Collection :: $ type" – meduprise