我有一个 sfDoctrineRouteCollection:
foo:
class: sfDoctrineRouteCollection
options:
model: Foo
columns: slug
action: [list, show, new, create, edit, update, delete]
如果现在有人创建了一个新实体,其 slug 导致例如“new”,那么路由引擎会混淆/foo/new
用于创建新实体和/foo/new
显示带有 slug“new”的实体的两条路线。
这个问题的干净优雅的解决方案是什么?
当然,我可以提供明确的路由定义,但这会使 sfDoctrineRouteCollection 有点过时。“show”操作的单独路由定义已经解决了这个问题,例如,通过添加像“/foo/:slug/show”这样的前缀。我还可以提供一个自定义的 slugify 方法来拦截像“新”这样的 slug 等。
你知道任何干净优雅的解决方案吗?