无法在CakePHP中使用AuthComponent更改“userModel”

时间:2013-07-31 20:21:15

标签: php cakephp-2.0 cakephp-2.3

我一直试图将'userModel'从默认的'user'更改为'usuario'。我之前在CakePHP 1.3中完成了这项工作,但我无法使用最新版本来完成它。

这是我的代码(AppController.php):

App::uses('Controller', 'Controller');

class AppController extends Controller {
    public $components = array(
        'Auth' => array(
            'loginError' => "Nombre de usuario o contraseña incorrectos.",
            'authError' => "Debes ingresar con tu cuenta de usuario.",
            'loginRedirect' => array('controller' => 'administrador', 'action' => 'productos'),
            'logoutRedirect' => array('controller' => 'usuarios', 'action' => 'login')
        ),
        'Session',
        'Email'
    );

    public function beforeFilter() {
        $this->Auth->authenticate = array(
            'Basic' => array('userModel' => 'Usuario'),
            'Form' => array('userModel' => 'Usuario')
        );
    }
}

提前致谢。

编辑:组件将我重定向到“/ users / login”而不是“/ usuarios / login”,并且“/ usuarios / login”中的登录表单不起作用。这就像我从未改变过userModel。

4 个答案:

答案 0 :(得分:1)

尝试初始化Auth组件时执行此操作

在AppController中:

public $components = array(
'Auth' => array(
        'authenticate' => array(
            'Form' => array(
                'userModel' => 'Usuario',
                'fields' => array(
                    'username' => 'username',
                    'password' => 'password'
                )
            )
        )
    )
);

答案 1 :(得分:1)

设置自定义UserModelAuth::loginAction无关,默认情况下指向/users/login。您可以在Controller::beforeFilter()回调或Controller::$components数组中覆盖它。希望有所帮助。

答案 2 :(得分:0)

$components数组更改为:

 public $components = array(
    'Auth' => array(
        'loginError' => "Nombre de usuario o contraseña incorrectos.",
        'authError' => "Debes ingresar con tu cuenta de usuario.",
        'loginRedirect' => array('controller' => 'administrador', 'action' => 'productos'),
        'logoutRedirect' => array('controller' => 'usuarios', 'action' => 'login'),
        'loginAction' => array('controller' => 'usuario','action' => 'login','plugin' => null),
        'authenticate' => array('Form' => array('userModel' => 'Usuario')

        ),
    ),
    'Session',
    'Email'
);

答案 3 :(得分:0)

试试此代码

App::uses('Controller', 'Controller');

class AppController extends Controller {
    public $components = array(
        'Auth' => array(
            'loginError' => "Nombre de usuario o contraseña incorrectos.",
            'authError' => "Debes ingresar con tu cuenta de usuario.",
            'loginAction' => array('controller' => 'aucusers','action' => 'login'),
            'loginRedirect' => array('controller' => 'administrador', 'action' => 'productos'),
            'logoutRedirect' => array('controller' => 'usuarios', 'action' => 'login')
        ),
        'Session',
        'Email'
        );
   }

我已添加以下行

'loginAction' => array('controller' => 'aucusers','action' => 'login'),