【问题标题】:Symfony2 - Managing routes involving 2 kinds of bundleSymfony2 - 管理涉及 2 种捆绑包的路由
【发布时间】:2015-02-26 14:53:47
【问题描述】:

我是 Symfony2 的初学者,我正在研究 Symfony2 项目,其中一种通用捆绑包,比如说 CoreBundle,正在管理所有路由(以这种形式,first.domain/a-route,second.domain /a-route, third.domain/a-route,...) 的网站。现在我一直在创建 FirstBundle、SecondBundle、ThirdBundle,其想法是将每个子域(第一、第二、第三……)的路由管理“转移”到相关的捆绑包。

通过编辑 /app/config/routing.yml 文件,将路由从 CoreBundle 传输到 FirstBundle 开始:

resource: "@ProjectFirstBundle/Resources/config/routing.yml"

    prefix: /

host: "{subdomain}.{domain}"

    defaults: { _controller: ProjectFirstBundle:Public:aroute }

      domain: %project_domain%

    requirements:

      domain: "%project_domain%"

      subdomain:  'first'

到:

resource: "@ProjectFirstBundle/Resources/config/routing.yml"

    prefix: /

然后创建 FirstBundle/Resources/config/routing.yml 文件,内容如下:

project_first_aroute:

    path:    /a-route

    host: "{subdomain}.{domain}"

    defaults: { _controller: ProjectFirstBundle:Public:aroute }

      domain: %project_domain%

    requirements:

      domain: "%project_domain%"

      subdomain:  'first'

当然,我已经使用与 CoreBundle 相同的架构创建了控制器和视图文件(通过对 .twig 文件进行改编——继承)。结果,运行first.domain/a-route时返回如下异常:

致命错误:未捕获的异常“Symfony\Component\Yaml\Exception\ParseException”,消息“无法在第 15 行解析(靠近“域:%project_domain%”)。在

关于如何有效实现我的目标有什么建议吗?

提前感谢您的帮助。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    我发现我应该创建 FirstBundle/Resources/config/routing.yml 文件,如下所示:

    project_first_aroute:

    path:    /a-route
    
    host: "{subdomain}.{domain}"
    
    defaults: { _controller: ProjectFirstBundle:Public:aroute, domain: "%project_domain%" }      
    
    requirements:
    
      domain: "%project_domain%"
    
      subdomain:  'first'
    

    【讨论】:

      【解决方案2】:

      错误消息是来自 Yaml 解析器的语法错误

      请注意,正确的标识在 Yaml 文件中是必不可少的,并检查是否需要在第一次出现时将 %project_domain 括在引号中(请参阅 stackoverflow 语法突出显示,它看起来很奇怪)。

      -

      在 Symfony2 中调试路由

      app/console router:debug

      【讨论】:

      • 感谢您的回答。我仔细检查了我的缩进并在 %project_domain% 上使用了引号,但仍然得到相同的异常。有时真正的问题不是例外中所述的内容。异常可能只能为识别问题提供一个远程线索。
      • 是的,但不是解析器错误。它必须与Yaml文件imo有关。
      • 你知道app/console router:debug这个命令吗?请张贴输出。
      • 这是我从命令 router:debug [Symfony\Component\Config\Exception\FileLoaderLoadException] 无法导入资源 "C:\my_root\my-platform\src\Project\FirstBundle/Resour ces/config/routing.yml”来自“C:/my_root/my-platform/app/config\routing.yml”。 (无法在第 15 行解析(靠近“域:”%cv_domain%“”)。)[Symfony\Component\Yaml\Exception\ParseException] 无法在第 15 行解析(靠近“域:”%project_domain%“”) .路由器:调试 [--show-controllers] [--format="..."] [--raw] [名称]
      猜你喜欢
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多