【发布时间】:2014-10-03 15:30:04
【问题描述】:
我知道可以匹配多个子域上的路由,如下所示:
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: {subdomain}.domain.com
defaults:
_controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index
subdomain: backend
requirements:
subdomain: backend|dev.backend
这可行,但这种方法的问题是每次我使用路由器生成 URL 时,我都必须指定要使用的子域。我希望避免每次从路由器获取 url 时都必须传入当前子域,而是默认使用与当前请求相同的子域。我需要一种动态设置默认子域值的方法:
irc_backend.report.stacking_issue:
path: /reports/stacking-issues
host: {subdomain}.domain.com
defaults:
_controller: IRCBackendBundle:Reports/Product/StackingIssueReport:index
subdomain: %subdomain%
requirements:
subdomain: backend|dev.backend
我尝试使用事件侦听器设置容器参数,但在调用侦听器时,容器已经编译,因此您会收到“无法在冻结的 ParameterBag 上调用 set()”。如果您尝试在那里设置容器参数。
【问题讨论】:
-
对我来说最简单的方法是创建新路线:symfony.com/doc/2.0/components/routing/introduction.html.
-
但是在使用路由器生成 URL 时,如何决定使用哪个路由名称呢?
-
我的错,路由器中没有任何东西可以处理主机。您可以与您的听众和相关课程一起编辑您的第一篇文章吗?
标签: symfony