【问题标题】:Symfony2 route based on host. With parametersSymfony2 基于主机的路由。带参数
【发布时间】:2014-02-27 17:19:03
【问题描述】:

我已按照此处的说明进行操作:

http://symfony.com/doc/current/components/routing/hostname_pattern.html

根据主机制作路由。但是我想使用参数而不是硬编码。文档说您可以使用服务参数,但我似乎无法让参数正常工作。

这是来自 routing.yml 的代码:

rc_course_new:
    pattern: /course/new
    host: "{ domain }"
    defaults: { _controller: CoursesRCWizardBundle:Wizard:new }
    requirements:
        domain: "%rc_domain%"

这是来自 services.yml 的代码:

parameters:
    rc_domain: my.domain.com

我收到此错误(看起来它没有获取参数,而是将其视为硬代码):

Oops! Google Chrome could not find { domain }

【问题讨论】:

  • 您是否在 routing.yml 之前包含了您的 services.yml?你清除缓存了吗?
  • 看来是你浏览器的问题。当浏览器无法访问服务器时,会出现“糟糕!Google Chrome 找不到 { domain }”。
  • 也可能是宿主变量中的空格,试试host: "{domain}"不带空格。
  • 它无法访问服务器,因为 url 似乎正在重新生成(而不是检查):http://%7B%20domain%20%7D/course/21390/edit 而不是 @ 987654322@

标签: symfony routing


【解决方案1】:

设法解决了这个问题:

在路由中:

rc_course_new:
    pattern: /course/new
    host: "%rc_domain%"
    defaults: { _controller: CoursesRCWizardBundle:Wizard:new }

在服务(可能在参数文件中工作得更好)文件中:

parameters:
    rc_domain: my.domain.com

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 2023-03-22
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多