6

私はここで次のようなURLを作成しようとしています:

/admin/login
/moderator/login

両方のリクエストは、ログインのために行われた同じコントローラーとアクションによって処理されます。/account/login/<type>

現在、私が作成できるのは次のURLだけです。

/login/admin

/login/moderator

私の現在の設定ファイルは次のようになります。

resources.router.routes.login.route = "login/:type"
resources.router.routes.login.defaults.controller = "account"
resources.router.routes.login.defaults.action = "login"

typeURLの先頭に変数 を配置する方法がわかりません。試してみましたが、サーバーエラーが発生します。編集

私はこれをやり遂げましたが、なぜこれが以前に機能しなかったのか理解できません:

resources.router.routes.login.route = ":type/login"
resources.router.routes.login.defaults.controller = "account"
resources.router.routes.login.defaults.action = "login"

編集

この配置をより柔軟にすることは可能ですか? /login=>/admin/login

.htaccess経由で解決策を探していません

4

1 に答える 1

4

Bootstrap.phpに以下を追加します

function _initRoutes() {
    $front_controller = Zend_Controller_Front::getInstance();
    $router = $front_controller->getRouter();

    $router->addRoute('login', new Zend_Controller_Router_Route(
        '/:type/login', array('controller' => 'account', 'action' => 'login')
    ));
}

loginAction()から使用:

$this->getRequest()->getParam('type');

単純?

于 2012-08-30T12:57:06.297 に答える