【问题标题】:A YAML file cannot contain tabs as indentationYAML 文件不能包含制表符作为缩进
【发布时间】:2013-11-27 08:42:53
【问题描述】:

这是我第一次使用 Symfony 2。我在这里要做的就是每当用户点击提交按钮时,他就会转到另一个页面。

但是我的索引页面没有加载。他们说我的路由文件有问题,特别是:

YAML 文件不能包含制表符作为缩进

我不知道我做错了什么。这是我的路由文件。

community_online_shop_homepage:
    pattern: /
    defaults: { _controller: CommunityOnlineShopBundle:Page:index }
_login:
    pattern: /login
    defaults: { _controller: CommunityOnlineShopBundle:Page:login}

【问题讨论】:

  • 请提供更多信息。你试过什么?抛出哪个错误?并发布路由器:调试输出。至少,我不明白你的头衔......
  • 这个问题缺少minimal reproducible example(没有错误信息),但我认为标题是错误。我现在已经添加了。

标签: php symfony routing routes


【解决方案1】:

YAML 文件使用空格作为缩进,您可以使用 2 或 4 个空格进行缩进,但没有制表符。换句话说,制表符缩进是被禁止的:

为什么 YAML 禁止标签页?

标签已被取缔,因为它们被不同的编辑器和工具区别对待。而且由于缩进对于正确解释 YAML 至关重要,所以这个问题太棘手了,甚至无法尝试。

(来源:YAML FAQ(感谢Destiny Architect提供链接))

例如,Symfony configuration file 可以写成 2 或 4 个空格作为缩进:

4 个空格

doctrine:
    dbal:
        default_connection: default

2 个空格

doctrine:
  dbal:
    default_connection: default

【讨论】:

  • @DestinyArchitect 这是一个错误的论点。糟糕的代码总是看起来很糟糕。标签不是导致错误识别的原因。选项卡看起来是可定制的,并且使用更少的字节使它们比空格更好。并且每个关于空间的论点都可以被揭穿。给我任何代码,我会给你一个只使用标签的格式很好的代码。
  • 使用标签只有不能正确使用的人才会头疼。
  • 这是guido最大的错误......他应该禁止空格缩进;)
  • 是时候添加各种太空迷缩进的示例了:1、3、6、8、。有些人就是无法理解标签等最简单的抽象事物。
  • 答案是正确的,所以我投了赞成票,但论点很糟糕。只有当制表符和空格缩进混合在一个文件中时,才会出现问题。这应该被禁止。否则,完全可以轻松地处理仅制表符缩进文件中的所有制表符,就像处理单空格缩进一样。真正的原因一定是无能或个人喜好。后者根本不是问题,但不是说它只是可悲。我很失望,尤其是因为我认为 YAML 在其他方面非常出色。
【解决方案2】:

如果您使用的是 EditorConfig,请确保将其添加到您的 .editorconfig 文件中

[*.yml]
indent_style = space
indent_size = 4

您可以将 indent_size 更改为 2,具体取决于您的首选项

【讨论】:

  • 我想知道:既然“indent_size”是用户的偏好,那么它是否应该包含在文件中?
  • 不,这是tab缩进的一个论据:使用tab,团队中的每个成员都可以根据自己的喜好看到缩进,而使用tab,每个工作在同一个代码库上的人应该是一致的
  • 不要在元数据中编码文件格式,而是在文件顶部附近的注释中使用 vim 模式行
【解决方案3】:

YAML 文件不能包含制表符作为缩进,所以错误在这里: C:\\xampp\\htdocs\\api\\app/../src/AppBundle/Resources/config/valida tor.yml" at line 9 (near " - { resource: validators/services.yml }")

【讨论】:

    【解决方案4】:

    您可以试试cache:clear 还是尝试使用path 而不是pattern

    path 选项是 Symfony2.2 中的新选项,pattern 用于旧版本。

    community_online_shop_homepage:
        path: /
        defaults: { _controller: CommunityOnlineShopBundle:Page:index }
    _login:
        path: /login
        defaults: { _controller: CommunityOnlineShopBundle:Page:login }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-05
      • 2017-05-19
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      相关资源
      最近更新 更多