如果行存在,则获取关系

时间:2015-07-22 06:39:03

标签: php laravel laravel-4 laravel-5 eloquent

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

如果行存在,如何创建一个获取用户role 的Eloquent查询?

这是我当前的查询(虽然它不能满足我的要求):

$user = User::where('username', 'LIKE', '%abc%')
    ->get();

1 个答案:

答案 0 :(得分:1)

首先,您需要在用户模型中定义用户 - >角色关系:

public function role() {
  return $this->belongsTo(Role::class);
}

然后,您就可以将用户与他们的角色一起加载:

$users = User::with('role')->where('username', 'LIKE', '%abc%')->get();

提取的用户应该在

中提供他们的角色
$user->role

如果他们没有角色,则此属性的值将为 NULL