试图获得非对象Laravel 5.3的属性

时间:2016-11-01 10:42:53

标签: laravel object properties laravel-5.3

ErrorException: Trying to get property of non-object -- 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');
    }

2 个答案:

答案 0 :(得分:1)

尝试添加->get()

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

答案 1 :(得分:1)

Activiter::find($id)返回一个Model对象,因此您无法预知它。

您的刀片文件应为:

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

您应该使用findOrFail()确认数据是否正确获取:

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