Symfony2中基于约定的路由

时间:2013-05-21 18:47:50

标签: symfony routing url-routing symfony-2.2

我正在努力学习如何在Symfony2中学习路由,到目前为止我读过的所有内容都有这样的例子:

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

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

这一切都很好,但是如果你想简单地拥有一个基于约定的路由系统,如下所示:

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

因此,对于这样的网址:

/acme/blog/index

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

不需要特定的路由配置,它只是从URL中推断出捆绑包,控制器和操作。因此,您可以继续添加捆绑包,控制器和操作,而无需修改路由配置。它只是有效。

如果无法做到这一点,您是否至少可以从URL推断控制器和操作?例如,您可能需要一个专门识别捆绑包的路由,但我们可以从URL获取控制器和操作吗?

我通读了Symfony“The Book”page about routing,我无法想办法解决这个问题。

1 个答案:

答案 0 :(得分:1)

没办法。这被认为是不好的做法,所以它已从symfony中删除。

但是你应该看看@Route注释,因为它简化了以这种方式配置路由。直接附加到操作,配置和代码之间不缺。