Я пытаюсь внедрить систему проверки подлинности на основе ролей, используя пользовательский поиск.Cakephp 3 findAuth join table return array
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 на user_roles.userid = users.id INNER JOIN роли на roles.id = user_roles.role группы по users.id
Значит, вы должны возвращать только запрос? –
Мне нужно использовать построитель запросов для генерации запроса MySQL, который я разместил выше, чтобы выбрать 1 строку, содержащую пользователя и несколько ролей: [1] [John] [$ 2 $ 10 ...] [false] ['admin,' tech ',' manager '] –
вы должны вернуть объект запроса, не вызывать -> toArray() в объекте запроса –