0

croogo 1.3「loginRedirect」のデフォルトのリダイレクトを変更しようとしています

デフォルトのリダイレクトは「users / users /login」です

私の場合は、ロール [admin][register][...] によってリダイレクトすることです

My UsersController (アクション: ログイン) :

public function login() {
    $this->set('title_for_layout', __d('croogo', 'Log in'));
    if ($this->request->is('post')) {
        Croogo::dispatchEvent('Controller.Users.beforeLogin', $this);
        if ($this->Auth->login()) {         
            switch($this->Auth->user('role_id')){
                case '1': // admin
                    $this->Auth->loginRedirect = array('controller'=>'users','action'=>'admin_index','prefix'=>'admin','admin'=>true);
                    break;
                case '4': // manager
                    $this->Auth->loginRedirect = array('controller'=>'managers','action'=>'index','prefix'=>'','manager'=>true);
                break; 
            }   
        } else {
            Croogo::dispatchEvent('Controller.Users.loginFailure', $this);
            $this->Session->setFlash($this->Auth->authError, 'default', array('class' => 'error'), 'auth');
            $this->redirect($this->Auth->loginAction);
        }

    }           
}

リダイレクトの問題は機能しません...ケースマネージャー「4」がある場合....常に/ admin/indexへのリダイレクトです

4

1 に答える 1

0

まず、

AuthComponent はリダイレクトを行いません。電話する必要があります

$this->redirect($this->Auth->redirect());

あなたのswitch発言の後に。

第二に、

これは Croogo 1.3 のようには見えません。イベントは CakePHP 2.x でのみ導入されているため、少なくとも Croogo 1.4.x である必要があります。

于 2014-08-05T05:55:37.937 に答える