尝试获取 属性 的非对象 Laravel 5.3

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

尝试添加 ->get().

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

Activiter::find($id) returns 一个模型 object 所以你不能 foreach 它。

您的 blade 文件应为:

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

并且您应该使用 findOrFail() 来确认数据被正确提取为:

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