我想改变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
中的中间斜线被下划线替换。
当我进行此更改时,路由器会停止识别路由和变量。我觉得很奇怪框架会强加这样的东西,所以我确定我在文档中遗漏了一些内容。
干杯!
答案 0 :(得分: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"
希望这会对您有所帮助,或者至少为您指明方向。