Zend - 输出更好的模块网址?

时间:2010-08-20 07:29:57

标签: php zend-framework

我正在输出特定模块的url,如下所示:

$this->view->url(array('controller'=>'index','action'=>'index','module'=>'somemodule'))

问题在于我查看:

/somemodule/action1/paramid/paramval

网址显示为:

/somemodule/index/index/paramid/paramval

当我真正想要的是:

/somemodule/

有什么想法吗?我使用了上面的url数组,因为我试图强制它显示正确的url。遗憾的是,简单地array('module'=>'somemodule')不起作用......

1 个答案:

答案 0 :(得分:0)

很奇怪,如果没有指定,我会认为它默认为索引/索引。您可以尝试使用Zend_Controller_Router_Route;

设置一些内容
$router = $ctrl->getRouter(); // returns a rewrite router by default
$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('somemodule',
                                     array('module' => 'somemodule',
                                           'controller' => 'index',
                                           'action' => 'index'))
);

但是,您需要设置路由以将:id /:val捕获到变量中。您可以使用另一个addRoute()命名,命名每个变量前面的冒号。

$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('somemodule/:id/:val',
                                     array('module' => 'somemodule',
                                           'controller' => 'index',
                                           'action' => 'index'))
);

然后你应该能够在URL中查看没有索引/索引的模块,这可能会解决url helper的问题。

此处有更多信息http://framework.zend.com/manual/en/zend.controller.router.html