Cakephp v3.0.5在Component Auth中使用不同的模型

时间:2015-05-20 19:25:13

标签: cakephp cakephp-3.0

我在http://book.cakephp.org/3.0/en/controllers/components/authentication.html中阅读了所有cakephp组件Auth文档,但我找不到解决方案: - (

我正在尝试在组件Auth中使用名为“Usuarios”的不同模型,并将字段“username”更改为“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']]
]);

但没有任何事情发生。没有出现登录表单,会话已打开。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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

如果你拥有所有这些,它应该有效。顺便说一句,如果你使用密码'作为您的密码字段,您不需要在配置Auth时指定;您只需要设置用户名' => ' cedula'因为您正在更改默认值。

另外,你在beforeFilter()方法中设置了$ this-> Auth-> allow()吗?