В CakePHP 3.6, Как изменить запрос пользователя для компонента auth?
Для cakephp 3.6, cakephp.org расскажет, как настроить запрос поиска пользователя для компонента auth по следующей ссылке: ссылка Но я не понимаю, как это реализовать? У меня есть столбец департамента в таблице пользователей, которая принадлежит таблице отделов. Я хочу изменить следующий запрос:
public function findAuth(){
$query
->select(['id', 'username', 'password'])->contain(['Departments'])
->where(['Users.active' => 1]);
return $query;
}
Будет ли работать приведенный выше код? Подскажите пожалуйста, в каком файле я должен написать функцию? И каковы другие необходимые шаги, чтобы сделать это, чтобы я получил всю информацию, относящуюся к пользователю, в $this->Auth->User?
1 ответ
Во-первых, вам нужно будет загрузить компонент Auth и передать пользовательскую конфигурацию в любой контроллер, для которого вы хотите использовать пользовательский искатель, например:
public function initialize()
{
parent::initialize();
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'finder' => 'auth'
]
],
]);
}
затем в вашем UsersTable
у вас будет пользовательский искатель:
public function findAuth(\Cake\ORM\Query $query, array $options)
{
$query
->select(['id', 'username', 'password'])->contain(['Departments'])
->where(['Users.active' => 1]);
return $query;
}
Этот ответ также может помочь Содержащиеся таблицы в пользовательских средствах поиска