我需要从我的数据库中获取所有用户,不包括属于Admin
和Staff
组的用户,我需要为每个用户获取他们的个人资料,以便我使用Eager加载:
$data['users'] = User::with('profile')->join('role_user', function($join){
$join->on('role_user.user_id', '=' , 'users.id');
})
->join('roles', function($join){
$join->on('roles.id', '=', 'role_user.role_id');
})
->whereNotIn('roles.name', ['Admin', 'Staff'])
->withTrashed()
->paginate(10);
我的数据库表:
users:
id | email | password
profile:
user_id | first_name | last_name
roles:
id | name
role_user:
user_id | role_id |
问题在于上面的代码适用于user
个信息,但仅显示第一个profile
,因此我的first_name and last_name
具有不同的email
答案 0 :(得分:0)
这样的事情应该有效:
$users = \User::with('profile', 'roles')
->whereRaw('roles.name', '!=' 'Admin', 'OR', 'roles.name', '!=', 'Staff')
->withTrashed()->paginate(10);