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