对于cakephp 3.6,cakephp.org在以下链接中介绍了如何针对身份验证组件自定义用户查找器查询: link 但是我不知道如何执行它? 我在属于部门表的用户表中有“ department_id”列。我想更改以下查询:
public function findAuth(){
$query
->select(['id', 'username', 'password'])->contain(['Departments'])
->where(['Users.active' => 1]);
return $query;
}
上面的代码可以工作吗? 请告诉我我必须在哪个文件中编写函数? 还有其他必要的步骤来完成它,以便在$ this-> Auth-> User中获得所有与用户相关的信息?
答案 0 :(得分:0)
首先,您将需要加载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;
}