CakePHP 4 - 身份验证 - 如何更改默认用户模型?
CakePHP4 - Authentication - How to change default userModel?
我正在按照本教程使用 CakePHP4 设置身份验证 https://book.cakephp.org/authentication/2/en/index.html。
存储我的用户的 table 不称为“用户”,所以当我尝试登录时它给我这个错误:
Base table or view not found: 1146 Table 'databasename.users'
在哪里可以指定 userModel?应该在哪个文件中设置?怎么样?
您必须相应地配置相应的解析器,在本例中为 ORM 解析器。
解析器由标识符使用,它通过 resolver
选项接受解析器配置。因此,例如对于密码标识符,您可以这样做:
$service->loadIdentifier('Authentication.Password', [
'resolver' => [
'className' => 'Authentication.Orm',
'userModel' => 'YourCustomModelName',
],
// ....
]);
注意传递解析器配置数组时也需要传递class名称,因为默认配置只是一个字符串(解析器class名称),所以不会与默认值合并,但覆盖它们!
另见
我正在按照本教程使用 CakePHP4 设置身份验证 https://book.cakephp.org/authentication/2/en/index.html。
存储我的用户的 table 不称为“用户”,所以当我尝试登录时它给我这个错误:
Base table or view not found: 1146 Table 'databasename.users'
在哪里可以指定 userModel?应该在哪个文件中设置?怎么样?
您必须相应地配置相应的解析器,在本例中为 ORM 解析器。
解析器由标识符使用,它通过 resolver
选项接受解析器配置。因此,例如对于密码标识符,您可以这样做:
$service->loadIdentifier('Authentication.Password', [
'resolver' => [
'className' => 'Authentication.Orm',
'userModel' => 'YourCustomModelName',
],
// ....
]);
注意传递解析器配置数组时也需要传递class名称,因为默认配置只是一个字符串(解析器class名称),所以不会与默认值合并,但覆盖它们!
另见