我试图让用户只具有客户角色以及laravel中的个人资料详细信息。我的查询是这样的
$customer = User::with(['roles' => function ($query) {
$query->where('name', '=', 'customer');
}])->join('profiles', 'profiles.user_id', '=', 'users.id')
->join('cities', 'cities.id', '=', 'profiles.city')
->where([['users.email', 'LIKE', '%'.$email.'%'], ['profiles.mobile', 'LIKE', '%'.$mobile.'%'], ['profiles.name', 'LIKE', '%'.$name.'%'], ['cities.name', 'LIKE', '%'.$city.'%'], ['profiles.home_address', 'LIKE', '%'.$address.'%']])
->select('profiles.name','profiles.mobile','profiles.home_address','cities.name as city', 'users.id','users.email')
->orderBy($sort_field, $sort_type)
->paginate($pagination);
但是我正在获得所有角色的记录。
谁能帮忙或看看这个。
提前致谢!!
下面的代码正在工作
$customer = User::whereHas(
'roles', function($q){
$q->where('name', 'customer');
}
)->join('profiles', 'profiles.user_id', '=', 'users.id')
->join('cities', 'cities.id', '=', 'profiles.city')
->where([['users.email', 'LIKE', '%'.$email.'%'], ['profiles.mobile', 'LIKE', '%'.$mobile.'%'], ['profiles.name', 'LIKE', '%'.$name.'%'], ['cities.name', 'LIKE', '%'.$city.'%'], ['profiles.home_address', 'LIKE', '%'.$address.'%']])
->select('profiles.name','profiles.mobile','profiles.home_address','cities.name as city', 'users.id','users.email')
->orderBy($sort_field, $sort_type)
->paginate($pagination);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句