2

我想更改 Zend Framework 从中生成 URL 的方式:

$routeString = '/section/:sectionName';
$route = new Zend_Controller_Router_Route(routeString, array( etc, etc... );

……到这……

$routeString = '/section_:sectionName';
$route = new Zend_Controller_Router_Route(routeString, array( etc, etc... );

请注意,在第二个选项中,中间的斜线$routeString被下划线替换。

当我进行此更改时,路由器停止识别路由和变量。我觉得框架会强加这样的事情很奇怪,所以我确定我在文档中遗漏了一些东西。

干杯!

4

1 回答 1

4

我认为您可以使用Zend_Controller_Router_Route_Regex来做到这一点。作为示例,我将在 application.ini 中为您的路线提供设置:

resources.router.routes.section.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.section.route = "section_(\d+)"
resources.router.routes.section.defaults.module = yourmodule
resources.router.routes.section.defaults.controller = yourcontroller
resources.router.routes.section.defaults.action = youraction
resources.router.routes.section.map.1 = "sectionName"
resources.router.routes.section.reverse = "section/%d"

希望这会对您有所帮助,或者至少为您指明正确的方向。

于 2011-03-16T04:43:10.867 回答