0

我有很多包的路由规则我不想在我的主routing.yml中手动包含,所以我正在寻找一种方法来定义一个路由,然后根据参数转发到控制器在网址中。

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

4

1 回答 1

0

您可以使用 FOSRestBundle 的自动路由生成

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

可以在隐式资源名称定义(第二个代码块)下的文档中找到一个示例。

于 2013-06-18T23:17:56.860 回答