【问题标题】:Is it possible to use route parameters for the default controller in Symfony2? [duplicate]Symfony2 中的默认控制器是否可以使用路由参数? [复制]
【发布时间】:2013-06-18 13:44:35
【问题描述】:

我有很多捆绑包,我不想手动将其路由规则包含在我的主 routing.yml 中,因此我正在寻找一种方法来定义路由,然后根据具体情况转发到控制器在url中的参数上。

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

【问题讨论】:

  • 好吧,好像不可能,之前有人问过:Convention-based routing in Symfony2
  • 其实有可能,请看我的回答——如果有不清楚的地方请评论:)
  • 谢谢,其实确实有什么不清楚的地方 ;-)

标签: symfony routing


【解决方案1】:

您可以使用 FOSRestBundle 的automatic route generation

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

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

【讨论】:

  • nfir,感谢您的评论。我不太确定我是否完全理解它。你能举一个适合我的问题的例子吗?
猜你喜欢
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2014-01-11
相关资源
最近更新 更多