【问题标题】:Laravel Has Many Returns a Row even it has a value in relations tableLaravel 有很多返回一行,即使它在关系表中有一个值
【发布时间】:2016-06-24 17:30:14
【问题描述】:
您好,我正在使用 laravel eloquent 进行数据库查询。我的问题是我无法显示我想显示的数据。我有三张桌子。说用户表、角色表和用户角色表。
用户
id |姓名 |
1 |约翰 |
2 |母鹿 |
角色
id |姓名 |
1 |管理员 |
2 |员工 |
3 |经理 |
用户角色
id |用户 ID | role_id
1 | 1 | 2
2 | 1 | 3
3 | 2 | 3
用户有许多保存在 User_Roles 表中的角色。我的查询是“我想显示没有员工角色的用户列表。在表中我只想显示 Doe。我怎样才能使它成为 laravel 雄辩的。
希望有人能帮忙!
【问题讨论】:
标签:
php
model
laravel-5
eloquent
【解决方案1】:
在User 模型中定义roles 关系
public function roles() {
retrun $this->belongsToMany(\Namespace\Role::class);
}
找回角色
$role = \Namespace\Role::where('name', 'Employee')->first();
获取用户
$user = \Namespace\User::whereHas('roles', function($query) use ($role) {
$query->where('role_id', '!=', $role->id);
})->get();