0

我有一个 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 等。

你知道任何干净优雅的解决方案吗?

4

1 回答 1

1

您可以使用segment_names选项更改new为其他内容,也可以使用更明确的内容,例如idid-slug禁用with_show并添加显示对象操作

object_actions: { show: [get, head] }

于 2013-03-04T22:07:18.033 回答