在 cakephp 3.6 中,如何更改 auth 组件的用户查找器查询?
In cakephp 3.6, How to change user finder query for auth component?
对于 cakephp 3.6,cakephp.org 说明如何在以下 link 处为 auth 组件自定义用户查找器查询:
link
但我不知道如何实施?
我在属于部门 table 的用户 table 中有 'department_id' 列。我想更改以下查询:
public function findAuth(){
$query
->select(['id', 'username', 'password'])->contain(['Departments'])
->where(['Users.active' => 1]);
return $query;
}
上面的代码行得通吗?
请告诉我必须在哪个文件中编写函数?
以及完成它的其他必要步骤是什么,以便我在 $this->Auth->User 中获得所有用户相关信息?
首先,您需要加载 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;
}
这个答案也可能有帮助
对于 cakephp 3.6,cakephp.org 说明如何在以下 link 处为 auth 组件自定义用户查找器查询: link 但我不知道如何实施? 我在属于部门 table 的用户 table 中有 'department_id' 列。我想更改以下查询:
public function findAuth(){
$query
->select(['id', 'username', 'password'])->contain(['Departments'])
->where(['Users.active' => 1]);
return $query;
}
上面的代码行得通吗? 请告诉我必须在哪个文件中编写函数? 以及完成它的其他必要步骤是什么,以便我在 $this->Auth->User 中获得所有用户相关信息?
首先,您需要加载 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;
}
这个答案也可能有帮助