使用Laravel5框架开发的项目中,按角色查询用户时,使用了关联模型查询,如下面第一种方法。但是随着业务发展,需要按角色同时按所属队列筛选,我的处理方法是第二种方法。

public static function getUserByRole($role)
{
    $authRole = AuthRoleModel::where('name', $role)->first();
    return $authRole->users->toArray();
}
public static function getUserByRoleAndOverdueTeam($role, $overdue_team)
{
    $authRole = AuthRoleModel::where('name', $role)->first();
    return $authRole->users()->whereRaw("FIND_IN_SET('{$overdue_team}',auth_user.overdue_team_str)")->get()->toArray();
}

第一种方法中直接取到的是角色下的所有用户,第二种追加了一个查询所属队列条件,方法是将原来的 users 属性改成 users() 方法,另外 overdue_team_str 字段是一个字符串,所以使用了 FIND_IN_SET 进行筛选。

本文为 陈华 原创,欢迎转载,但请注明出处:http://www.ichenhua.cn/blog/post/11