【问题标题】:symfony services.yml does not contain valid YAMLsymfony services.yml 不包含有效的 YAML
【发布时间】:2017-09-04 07:32:53
【问题描述】:

我的 services.yml 中出现错误:services.yml 不包含有效的 YAML Symfony 3

redirectionListener:
  class: Gba\GbaBundle\Listener\RedirectionListener
  arguments: [@service_container, @session] 
  tags:
    - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }   

你能帮帮我吗

谢谢

截图:

【问题讨论】:

  • 现在这是一个很长的错误信息!您需要在包含@ 符号'@session' 的字符串周围使用引号。它曾经在不带引号的情况下工作,所以如果您遵循不带引号的示例,请丢弃该示例,因为它已经过时且可能还有其他问题。

标签: symfony


【解决方案1】:

您必须注意 yaml 中的一些限制。 Symfony 有一个简洁的命令行工具,您可以使用它来检查 yaml 文件是否有效,它还会尝试指出错误所在的位置。你可以这样运行它:

bin/console yaml:lint src/Gba/GbaBundle/Resources/config/services.yml

这只会对这个文件进行 lint,如果需要,您也可以将其指向整个文件目录。

我最好的猜测是,您必须在定义为参数的服务周围加上引号,实际上我更喜欢在 yaml 中引用每个字符串值:

redirectionListener:
  class: 'Gba\GbaBundle\Listener\RedirectionListener'
  arguments: ['@service_container', '@session'] 
  tags:
    - { name: 'kernel.event_listener', event: 'kernel.request', method: 'onKernelRequest' }

在 yaml 中需要注意的其他事项是正确的缩进以及混合空格和制表符。

【讨论】:

    【解决方案2】:

    我在这个网站上检查了我的 yml。帮助我尽快找到错误。

    https://yamlchecker.com/

    【讨论】:

      【解决方案3】:

      我曾经遇到过这个错误。这是因为我没有在 services.yaml 文件的末尾留空行。 一旦我这样做了,就不会再有错误了!

      【讨论】:

        【解决方案4】:

        在我的情况下,这是由于 } 符号后的行尾有空格。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-23
          • 2022-12-22
          • 2018-02-28
          • 1970-01-01
          • 1970-01-01
          • 2021-09-13
          • 2015-09-23
          • 2018-04-15
          相关资源
          最近更新 更多