我正在尝试使用自定义查找器实现基于角色的身份验证系统 .
public function findAuth(\Cake\ORM\Query $query, array $options)
{
$query
->select(['id', 'username', 'passwordHash', 'locked', 'roles.role'])
->group('username')
->join([
'table' => 'user_roles',
'conditions' => ['user_roles.userid = Users.id']])
->join([
'table' => 'roles',
'conditions' => ['roles.id = user_roles.role']])
->toArray()
;
return $query;
}
我需要的结果是mysql查询:select user.id,username,passwordHash,locked,group_concat(roles.role)来自用户的角色INNER JOIN user_roles上的user_roles.userid = users.id角色上的INNER JOIN角色.id = user_roles.role group by users.id
1 回答
我最终最终得到的是:
这给了我一个多维数组:user_roles [index [id,user_id,roles [id,role]]]
在我的情况下,我有2个索引条目(0和1),我可以在foreach循环中检查用户与in_array函数的角色