2
我正在嘗試使用自定義查找器實現基於角色的身份驗證系統。CakePHP 3 findAuth連接表返回數組
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查詢我需要的是: 選擇users.id,用戶名,passwordHash,鎖定,GROUP_CONCAT(roles.role)來自用戶的角色INNER JOIN上user_roles.userid = users.id user_roles INNER JOIN角色在roles.id = user_roles.role通過users.id
你的意思,你只需要返回查詢中與in_array功能檢查用戶的角色? –
我需要使用查詢生成器來生成我上面發佈的MySQL查詢,以選擇包含用戶和多個角色的1行: [1] [John] [$ 2 $ 10 ...] [false] ['admin,' tech','manager'] –
你應該返回查詢對象,不要在查詢對象上調用 - > toArray() –