我有这个:
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
你创建了从BelongsTo
到User
的JobRole
关系:
https://laravel.com/docs/5.6/eloquent-relationships#one-to-one
在你的User
模型中,你可以添加这样的关系:
public function jobRole() {
return $this->belongsTo(App\JobRole::class, 'preferred_role_id');
}
然后改变你的观点:
{{ $user->jobRole->name }}
要提高性能,您应该使用预先加载:
User::with('jobRole')->get(...);