在过去的 2 个小时里,我一直在努力解决这个问题。我正在尝试向我的 Zend Framework (V1) 应用程序添加一个正则表达式路由。我的其他路由是静态的并存储在我的 application.ini 文件中,这就是我想放置一些新的正则表达式路由的地方。
在我继续处理更复杂的正则表达式路由之前,我开始将以下(工作)路由转换为正则表达式路由:
resources.router.routes.shift-display.route = /shift/display/:id
resources.router.routes.shift-display.defaults.module = shift
resources.router.routes.shift-display.defaults.controller = index
resources.router.routes.shift-display.defaults.action = display
这是我想出的:
resources.router.routes.shift-display.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.shift-display.regex = "shift/display/(\d+)"
resources.router.routes.shift-display.defaults.module = shift
resources.router.routes.shift-display.defaults.controller = index
resources.router.routes.shift-display.defaults.action = display
resources.router.routes.shift-display.map.1 = id
resources.router.routes.shift-display.reverse = "shift/display/%d"
但它不起作用。路由器似乎无法识别该路由。例如,当尝试打开时,vh.localhost/shift/display/7
我得到“指定的控制器无效(显示)”,因此路由器使用默认路由。我还尝试在正则表达式路由前加上斜杠。我尝试使用 url-helper 使用新的 regex-route 生成链接(带有传递的 ID 参数),它可以工作。
有人有线索吗?