我有很多捆绑包,其路由规则我不想手工包含在我的主路由中。所以我正在寻找一种方法来定义一个路由,然后根据路由转发给控制器关于网址中的参数。
在我的routing.yml中有类似的东西:
foo_main:
path: /foo/{bundle}/{action}
defaults: { _controller: "Foo{bundle}Bundle:Api:{action}" }
它的行为应该是这样的:
/foo/acme/index
- > FooAcmeBundle:Api:indexAction
/foo/bar/show
- > FooBarBundle:Api:showAction
...
我已经看到有一个自定义路由提供程序可以自动注册新路由,如果上述情况不可行的话。但我想我必须为每个捆绑包添加一个自定义路由提供程序,如果每个捆绑包以相同的方式注册其路由,这似乎是一个不必要的开销。
PS:我现在正在使用Symfony 2.3.1。
答案 0 :(得分:0)
您可以使用FOSRestBundle的automatic route generation。
它不包含路径中的包名称,但您可以滥用@RouteResource注释来匹配您的包名称。
可以在Implicit resource name definition(第二个代码块)下的文档中找到一个示例。