如果行存在,获取关系


Get relationship if the row exists

我有两个表,usersroles,其中每个user 可以(但不必)有一个role。这个关系通过两个表中的role_idid分别存在。

如果行存在,我如何创建一个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