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"

我不知道如何将type变量放在 URL 的开头,我试过了,但它给出了服务器错误。 编辑

我完成了这个,但不明白为什么这不能早点工作:

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 回答