我正在尝试学习 Symfony2 中的路由是如何工作的,到目前为止我读过的所有内容都有这样的例子:
blog:
path: /blog/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
这会将对 /blog/123 的请求路由到 AcmeBlogBundle 博客控制器的“index”操作,并将 123 参数作为“page”参数传递给该控制器操作。如果没有传递 page 参数,则 page 默认为 1。
这一切都很好,但是如果您只想拥有一个基于约定的路由系统来传递如下内容,该怎么办:
/{bundle}/{controller}/{action}
因此,对于这样的 URL:
/acme/blog/index
然后它会调用 AcmeBlogBundle 博客控制器的“index”操作。
不需要特定的路由配置,它只是从 URL 推断包、控制器和操作。因此您可以继续添加包、控制器和操作,并且不需要修改路由配置。它就是有效的。
如果这不可能,您至少可以从 URL 推断控制器和操作吗?例如,也许您需要一个专门标识包的路由,但是我们可以从 URL 中获取控制器和操作吗?
我通读了 Symfony“书”关于路由的页面 http://symfony.com/doc/2.2/book/routing.html,我想不出办法来做到这一点。
决不。这被认为是不好的做法,因此从 symfony 中删除了。
但你应该看看@Route http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html注释,因为它以如此好的方式简化了路由配置。直接附着在action上,配置和代码之间不存在任何缺失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)