我有几个网址:
- /戴夫
- /达维娜
- /戴夫/克里斯
- /达维娜/彼得
我的路线中有所有这些条目,例如:
routes.dave.route = /dave
routes.dave.defaults.module = default
routes.dave.defaults.controller = person
routes.rcp.defaults.action = index
routes.davina.route = /dave/chris
routes.davina.defaults.module = default
routes.davina.defaults.controller = person
routes.davina.defaults.action = index
我认为您可以立即看到我有重复问题。有没有办法将多个网址组合成一条路线?
我玩过使用 /:person 但我也有其他内容也不会去人控制器。
routes.person.route = /:personname
routes.person.defaults.module = default
routes.person.defaults.controller = person
routes.person.defaults.action = index
routes.person.reqs.personname = "^[a-zA-Z0-9]+$"
像 /search?person=dave 这样的 URL 会转到搜索控制器,显然被上面的表达式杀死了。
我可以将需求表述为列表吗?"dave|davina|etc" 还是有另一种神奇的 zend 方法可以做到这一点?
更新: 我在玩,遇到了这个部分解决方案:
routes.person.route = /:personname
routes.person.defaults.module = default
routes.person.defaults.controller = person
routes.person.defaults.action = index
routes.person.reqs.personname = "(dave|davina)"
routes.person.route = /:person/:personname
routes.person.defaults.module = default
routes.person.defaults.controller = person
routes.person.defaults.action = index
routes.person.reqs.personname = "(chris|peter)"
我将暂时使用它来满足我的要求,但我会保持开放状态(至少一天)供任何人提供建议。主要问题是这两个列表都会增长,这最终会导致问题。