Cakephp v3.0.5在组件身份验证中使用不同的模型

Cakephp v3.0.5在组件身份验证中使用不同的模型,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我在中阅读了所有cakephp组件身份验证文档,但找不到解决方案:- 我试图在component Auth中使用名为Usuarios的不同模型,并通过cedula更改字段用户名。这是我在AppController.php中的配置: public function initialize() { parent::initialize(); $this->loadComponent('Flash'); $this->loadComponen

我在中阅读了所有cakephp组件身份验证文档,但找不到解决方案:-

我试图在component Auth中使用名为Usuarios的不同模型,并通过cedula更改字段用户名。这是我在AppController.php中的配置:

public function initialize() {

        parent::initialize();
        $this->loadComponent('Flash');
        $this->loadComponent('Auth');


        $this->Auth->config('authenticate', [
            'Basic' => [
                'userModel' => 'Usuarios', 
                'fields' => [
                    'username' => 'cedula', 
                    'password' => 'password']],
            'Form' => ['userModel' => 'Usuarios', 
                'fields' => [
                    'username' => 'cedula', 
                    'password' => 'password']]
]);
但是什么也没发生。没有出现登录表单,会话处于打开状态


我做错了什么?

将控制器名称与模板目录匹配,将方法与模板匹配

如果您的控制器是src/Controllers/Usuarios,那么在src/Templates/Usuarios/中,您需要将login.ctp作为视图文件

如果你有所有这些,它应该工作。顺便说一下,如果您使用“password”作为密码字段,则在配置Auth时不需要指定该字段;您只需要设置“username”=>“cedula”,因为您正在更改默认值


另外,您是否在beforeFilter方法中的$this->Auth->allow中设置了任何内容?

您是否在src/Templates/Users中有login.ctp,在UsersController中有login方法?否,mi login在src/Templates/usarios中,在usarioscontroller中有login方法。我想在那里使用它,而不是在用户中。谢谢谢谢DJ Far。我在src/Controllers/Usuarios中有login方法,在src/Templates/Usuarios/中有login.ctp方法。问题是错误:找不到UsersController。不要转到Usuarios控制器:-在您的src/Model/Table中,您的表名为Usuarios稳定还是UsersTable?请尝试在浏览器中键入“Usuarios/login”。错误:找不到Users控制器:-由于用户对Auth是特殊的,如果我是你,我只会使用Model、View、Controller的用户名。然后在UsersTable::initialize$this->table'usuarios'中将表设置为'usuarios';如果您确实想在URL中显示Usuarios,请在config/routes.php文件中进行设置。