Je tente d'implémenter un système d'authentification basé sur les rôles à l'aide d'un outil de recherche personnalisé.Cakephp 3 findAuth join table Tableau de retour
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;
}
La requête mysql résultant i besoin est: select users.id, nom d'utilisateur, PasswordHash, rôle, group_concat (roles.role) verrouillé des utilisateurs INNER JOIN user_roles sur user_roles.userid = users.id INNER JOIN rôles sur roles.id = groupe user_roles.role par users.id
Voulez-vous dire que vous devez retourner requête uniquement? –
Je dois utiliser le générateur de requête pour générer la requête MySQL que j'ai posté ci-dessus pour sélectionner 1 ligne contenant un utilisateur et plusieurs rôles: [1] [John] [$ 2 $ 10 ...] [false] ['admin,' tech ',' manager '] –
vous devriez retourner l'objet de requête, n'appelez pas -> toArray() sur l'objet de requête –