是否可以在Symfony2中使用默认控制器的路由参数?

时间:2013-06-18 13:44:36

标签: symfony routing

我有很多捆绑包,其路由规则我不想手工包含在我的主路由中。所以我正在寻找一种方法来定义一个路由,然后根据路由转发给控制器关于网址中的参数。

在我的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。

1 个答案:

答案 0 :(得分:0)

您可以使用FOSRestBundle的automatic route generation

它不包含路径中的包名称,但您可以滥用@RouteResource注释来匹配您的包名称。

可以在Implicit resource name definition(第二个代码块)下的文档中找到一个示例。