【问题标题】:Symfony2: Dynamic Routing PrefixSymfony2:动态路由前缀
【发布时间】:2012-07-11 10:32:42
【问题描述】:

我需要创建一个动态路由方案,我在路由前加上一个变化的变量。

这是一个例子:

应用基础路由:/dashboard/

场景 A:/client_a/dashboard/
场景 B:/client_b/dashboard/
场景 C:/client_c/dashboard/

这个想法是保持应用程序核心代码相同,但允许在路由中引用不同的客户端。

进行此设置的最佳做法是什么?我可以在 routing.yml 中添加一个静态前缀,但除非可以动态设置“prefix: /myparameter”,否则这可能对我不起作用。主要原因是现有的 Symfony2 应用程序非常复杂。

如果我使用/{client_name}/dashboard/,我将不得不更改应用程序中的所有路径,因为现在我的路径中缺少一个附加参数。因此,我正在寻找一种解决方案,它可以让我改造现有的应用程序,而不必接触应用程序的主代码。

谢谢,

JB

【问题讨论】:

  • 也许我没抓住重点,但你不能直接将/{client_name}/dashboard 路由到你的控制器吗?
  • 当然可以。我想弄清楚的是一种改造现有 Symfony2 应用程序的方法,而无需触及 routing.yml 中的所有路由和 Twig 模板中的路径。因此关于前缀的问题。
  • 也许你应该把你的路由文件摘录出来

标签: php symfony


【解决方案1】:

@Jakub 的评论基本上是正确的。但是,如果像我的情况一样,必须对现有的 Symfony 应用程序进行改造以满足这个新要求,那将是非常乏味的。 Symfony 中的安全实现还有一个问题,Symfony 需要登录、login_check 和 logout 方法的静态路径。因此,目前似乎不支持在这些场景中使用前缀。

【讨论】:

  • 您找到解决方案了吗?我也有同样的问题。在某些情况下,我还想跳过动态参数。 “客户端”或其他实体有时由路由参数标识,有时由 http 主机标识。
猜你喜欢
  • 1970-01-01
  • 2015-08-18
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
相关资源
最近更新 更多