当我尝试显示身份验证用户数据时,为foreach()提供的参数无效



你好,我有两个表具有这种关系:用户型号:

public function OneYearBodys()
{
return $this->hasMany('AppOneYearBody');
}

一年车身型号:

public function user()
{
return $this->belongsTo('AppUser');
}

控制器:

public function index()
{
$Bodies = OneYearBody::all();
return view('OneYear.Body')->with('Bodies',$Bodies);
}

现在我需要显示创建此数据的特定登录用户的数据,我已经在数据库中存储了他的id
,所以我尝试了这个:

@foreach (Auth::user()->Bodies as $body)
{{ $body->OneYearBody }}
<br>
@endforeach

但是我得到了这个错误:invalid argument supplied for foreach()当我为所有用户显示数据时,当我这样做时,它的工作:

@foreach ($Bodies as $body)
{{ $body->OneYearBody }}
<br>
@endforeach

您将关系声明为public function OneYearBodys() { ... },因此应该使用该名称对其进行迭代。@foreach (Auth::user()->OneYearBodys as $body)

如果您想访问以下

@foreach (Auth::user()->Bodies as $body)
{{ $body->OneYearBody }}
<br>
@endforeach

您需要将"实体"关系添加到用户模型中。或将Bodies更改为OneYearBodies

最新更新