Symfony2 / 路由 / 使用参数作为控制器或动作名称
Posted
技术标签:
【中文标题】Symfony2 / 路由 / 使用参数作为控制器或动作名称【英文标题】:Symfony2 / routing / use parameters as Controller or Action name 【发布时间】:2013-09-03 14:37:13 【问题描述】:是否可以使用给定的参数路由到控制器/动作?
例如:
my_custom_route:
pattern: /controller/action
defaults: _controller: AcmeDemoBundle:[controller]:[action]
我希望将 [controller] 和 [action] 替换为给定路由的参数值。
I.E : http://www.somedomain.com/Content/add
应该在包“AcmeDemoBundle”中调用控制器“ContentController”的操作“addAction”
【问题讨论】:
你为什么要这样做?这听起来像一个丑陋的黑客。如果你懒得把所有的路由都打成 yml,我建议你改用注解。 Convention-based routing in Symfony2 的可能重复项 您可以创建一个控制器来接收控制器和操作并执行该操作,但您不应该这样做:这是一种不好的做法 当您为网站创建后端(管理员)应用程序时,您总是(我认为...)对不同的表有相同的操作:add new行,更新现有一个和删除一个。可能是“我懒得在 yml 中输入所有路线”;-) @jzpululu 是的,这叫做CRUD,你有一个 symfony 命令可以轻松生成这些。php app/console doctrine:generate:crud
【参考方案1】:
是的,您可以这样做,但不建议这样做。如果您必须重构代码并且您的控制器/操作必须更改,您将来会做什么?您可能会破坏链接和功能,同时可能会丢失可能已针对该特定路线完成的搜索引擎优化。
【讨论】:
这是个好主意,如果第一个默认控制器路由不起作用..然后它会找到一个自我声明的路由!如果以后需要改,就改吧。。所以如果你做不到,那你知道除了使用htaccess之外还有什么工具或框架可以做的吗……这是一个常见的需求,我有1000个奇怪的页面都使用相同的路由控制器/动作,为什么在地球上我必须声明每一个该死的......应该有一个共同的路由!像 C#.NET MVC 4.0。期待答案以上是关于Symfony2 / 路由 / 使用参数作为控制器或动作名称的主要内容,如果未能解决你的问题,请参考以下文章