我有这个:
public function index()
{
$allusers = User::get(['id', 'first_name', 'last_name', 'postcode', 'preferred_role_id', 'email']);
return view('users.index', ['allusers' => $allusers]);
}
现在,preferred_role_id
是一个整数,它指向JobRoles模型(job_roles)表中的id
,其中有一个名称为job角色的字段。如何将该名称传递给$allusers
中的每个用户?我想在这样的视图中访问它:
@foreach ($allusers as $user)
<tr>
<td>
{{$user->first_name}}
</td>
<td>
{{$user->job_role}}
</td>
</tr>
@endforeach
答案 0 :(得分:3)
您创建了从BelongsTo
到User
的{{1}}关系:
https://laravel.com/docs/5.6/eloquent-relationships#one-to-one
在JobRole
模型中,您可以添加如下关系:
User
然后改变你的观点:
public function jobRole() {
return $this->belongsTo(App\JobRole::class, 'preferred_role_id');
}
要提高性能,您应该使用预先加载:
{{ $user->jobRole->name }}