我有两个表users
和roles
,其中每个user
可以(但不一定)有一个role
。该关系分别通过两个表中的role_id
和id
存在。
如果行存在,如何创建一个获取用户role
的Eloquent查询?
这是我当前的查询(虽然它不能满足我的要求):
$user = User::where('username', 'LIKE', '%abc%')
->get();
答案 0 :(得分:1)
首先,您需要在用户模型中定义用户 - >角色关系:
public function role() {
return $this->belongsTo(Role::class);
}
然后,您就可以将用户与他们的角色一起加载:
$users = User::with('role')->where('username', 'LIKE', '%abc%')->get();
提取的用户应该在
中提供他们的角色$user->role
如果他们没有角色,则此属性的值将为 NULL