2

我正在尝试学习路由在 Symfony2 中的工作原理,到目前为止,我读过的所有内容都有这样的示例:

blog:
    path:      /blog/{page}
    defaults:  { _controller: AcmeBlogBundle:Blog:index, page: 1 }

这会将到 /blog/123 的请求路由到 AcmeBlogBu​​ndle 博客控制器的“索引”操作,并将 123 参数作为“页面”参数传递给该控制器操作。如果没有传递页面参数,则页面默认为 1。

这一切都很好,但是如果你想简单地拥有一个基于约定的路由系统来传递这样的东西:

/{bundle}/{controller}/{action}

因此,对于这样的 URL:

/acme/blog/index

然后它将调用 AcmeBlogBu​​ndle 博客控制器的“索引”操作。

不需要特定的路由配置,它只是从 URL 中推断出捆绑包、控制器和操作。所以你可以继续添加bundles、controllers和actions,并且不需要修改路由配置。它只是工作。

如果这不可能,您至少可以从 URL 中推断出控制器和操作吗?例如,也许您需要一个专门标识捆绑包的路由,但我们可以从 URL 中获取控制器和操作吗?

我通读了有关路由的 Symfony “The Book”页面,但我想不出一种方法来做到这一点。

4

1 回答 1

1

没门。这被认为是不好的做法,因此从 symfony 中删除。

但是您应该看一下@Route注释,因为它以一种很好的方式简化了配置路由。直接附在action上,config和code之间不缺。

于 2013-05-21T19:19:15.973 回答