我正在努力学习如何在Symfony2中学习路由,到目前为止我读过的所有内容都有这样的例子:
blog:
path: /blog/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
这会将对/ blog / 123的请求路由到AcmeBlogBundle Blog控制器的“索引”操作,并将123参数作为“page”参数传递给该控制器操作。如果没有传递页面参数,则页面默认为1。
这一切都很好,但是如果你想简单地拥有一个基于约定的路由系统,如下所示:
/{bundle}/{controller}/{action}
因此,对于这样的网址:
/acme/blog/index
然后它将调用AcmeBlogBundle Blog控制器的“索引”操作。
不需要特定的路由配置,它只是从URL中推断出捆绑包,控制器和操作。因此,您可以继续添加捆绑包,控制器和操作,而无需修改路由配置。它只是有效。
如果无法做到这一点,您是否至少可以从URL推断控制器和操作?例如,您可能需要一个专门识别捆绑包的路由,但我们可以从URL获取控制器和操作吗?
我通读了Symfony“The Book”page about routing,我无法想办法解决这个问题。
答案 0 :(得分:1)
没办法。这被认为是不好的做法,所以它已从symfony中删除。
但是你应该看看@Route
注释,因为它简化了以这种方式配置路由。直接附加到操作,配置和代码之间不缺。