如何在Zend Framework中的URL开头添加变量?

时间:2012-08-30 11:57:12

标签: php zend-framework zend-route

我正在尝试创建网址,例如:

/admin/login
/moderator/login

该请求将由同一控制器和服务器提供。为登录而采取的行动,即/account/login/<type>

目前,我可以制作以下网址:

/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 =&gt; /admin/login

我不是通过.htaccess

寻找解决方案

1 个答案:

答案 0 :(得分: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');

简单?