当前位置:  开发笔记 > 编程语言 > 正文

在Zend Framework中添加路由到路由器

如何解决《在ZendFramework中添加路由到路由器》经验,为你挑选了1个好方法。

我正在使用mod-rewrite路由器.

我正在尝试将路由添加到将转换以下URL的路由器:
baseurl/category/aaa/mycontroller/myaction/param/value

to:
Controller = mycontroller
action = myaction

--parameters--

category = aaa
param = value

我在我的bootstrap中使用以下(不工作),_front是frontController

$Router=$this->_front->getRouter();
$CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*');
$Router->addRoute('category', $CategoryRoute);

当我使用Zend_View :: url()帮助程序(有或没有给它新的路由的名称)时,我得到的错误是抛出的路由器异常.
只有当我有baseurl/category /时抛出异常.

我错过了什么?

我错过了:
由于url中有[category],所使用的路由器是上面定义的路由器.
当我使用url()帮助器时,我没有给它[category]赋值,因此url parts-> failure中没有这个键的值.给出默认值,使其有效.



1> David Snabel..:

您应该按照solomongaby的建议包含/*.

如果未提供所有必需参数(即类别,控制器和操作),则需要指定默认值.

你可以这样做:

$Router=$this->_front->getRouter();

$CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*',
    array(
        'controller' => 'index',
        'action'     => 'index',
        'category'   => null
    )
);
$Router->addRoute('category', $CategoryRoute);

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有