2016-11-01 27 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)返回一個Model對象,所以你不能對它進行foreach。

刀片文件應爲:

@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

相關問題