如何更改cakephp auth组件控制器?

时间:2014-10-29 09:51:44

标签: cakephp cakephp-2.4

这里我的控制器名称是AucUsersController。在使用auth组件之后,它正在查找用户控制器。我想要更改此目录。我已经尝试了以下代码,但它没有工作。

public $components = array('Paginator'=>array('limit'=>2),'Auth'=>array(
            'Controller'=>'AucUsers',
            'loginRedirect' => array('controller' => 'aucusers','action' => 'index'),
            'logoutRedirect' => array('controller' => 'aucusers','action' => 'index'),
            'authError'=>'You can not access this page!!',
));

如何更改此默认控制器?

2 个答案:

答案 0 :(得分:3)

CakePHP默认使用loginAction的users / login, loginAction是您定义控制器和cake执行登录的操作的属性

public $components = array('Paginator'=>array('limit'=>2),'Auth'=>array(
            'loginAction' => array(
            'controller' => 'aucusers',
            'action' => 'login'
        ),
            'loginRedirect' => array('controller' => 'aucusers','action' => 'index'),
            'logoutRedirect' => array('controller' => 'aucusers','action' => 'index'),
            'authError'=>'You can not access this page!!',
));

loginRedirect - 表示用户登录后应重定向到的位置 logoutRedirect - 表示用户在注销后应重定向到的位置

答案 1 :(得分:0)

我相信如果你想更改默认控制器,你必须设置UserModel选项。我将它设置为beforeFilter方法。所以在你的情况下它会是。

/**
 * beforeFilter method
 * 
 * @return void
 */
public function beforeFilter() {
    $this->Auth->authenticate = array(
        'Form' => array(
            'userModel' => 'AucUser',
        )
    );

    return parent::beforeFilter();      
}

我没有在文档中看到过任何控制器选项。