0

loginActionはモジュールuser、コントローラーにいapplication/modules/user/controllers/AuthController.phpます。indexActionログインに成功したら、にリダイレクトしたいapplication/controllers/IndexController.php。だから私はこれを持っています:

if ($result->isValid()) {
            $auth->getStorage()->write($adapter->getResultRowObject());

            $this->_helper->redirector('index', 'index');

            return;
}

ログインすると、メッセージが表示されますMessage: Invalid controller specified (index)userこれは、ログインがモジュールにあり、IndexControllerがルートアプリケーションにあるためだと思います。

どうすればこれを修正できますか?

4

1 に答える 1

4

redirector() アクション ヘルパーには、リクエストをリダイレクトするためのメソッドがいくつかあります。

これを試してください。アプリケーション/コントローラーのコントローラーは「デフォルト」モジュールにあります。

if ($result->isValid()) {
    $auth->getStorage()->write($adapter->getResultRowObject());
    //redirector($action, $controller, $module)
    $this->_helper->redirector('index', 'index', 'default');
}

このヘルパーの使用方法はより明示的であるため、デフォルトを覚える必要はありません。

 if ($result->isValid()) {
        $auth->getStorage()->write($adapter->getResultRowObject());
        //gotoSimple($action, $controller, $module, $params = array())
        $this->getHelper(redirector)->gotoSimple('index', 'index', 'default');
        //or use gotoUrl($url)
        $this->getHelper(redirector)->gotoUrl('/index/index');
        //or use gotoRoute()
        $this->getHelper(redirector)->gotoRoute('action'=>'index', 'controller'=>'index', 'module' => 'default');
    }

そして、迅速で汚いユーティリティメソッド:

 if ($result->isValid()) {
        $auth->getStorage()->write($adapter->getResultRowObject());
        //_redirect($url);
        $this->_redirect('/index/index');
    }

お役に立てれば

于 2012-12-08T10:44:50.167 に答える