是否可以将别名用于yaml中带有symfony/yaml的密钥?
我一直在尝试使用带有cakephp3的symfony/yaml(v4.4.0)读取以下yaml文件。是否可以将别名用于yaml中带有symfony/yaml的密钥?,symfony,cakephp,yaml,Symfony,Cakephp,Yaml,我一直在尝试使用带有cakephp3的symfony/yaml(v4.4.0)读取以下yaml文件。 但是,我得到了以下错误 Reference "aaa" does not exist in "path to yml" at line xx (near "*aaa:"). Symfony\Component\Yaml\Exception\ParseException 我想稍后使用“aaa”作为密钥。 它不适用于“*aaa:”,而适用于“1:”。 基本上,yaml文件中的键可以使用别名吗 这是
但是,我得到了以下错误
Reference "aaa" does not exist in "path to yml" at line xx (near "*aaa:").
Symfony\Component\Yaml\Exception\ParseException
我想稍后使用“aaa”作为密钥。它不适用于“*aaa:”,而适用于“1:”。
基本上,yaml文件中的键可以使用别名吗 这是yaml文件
aaa: &aaa 1
bbb: &bbb 2
ccc: &ccc 3
*aaa: # <- this doesn't work and works with '1:'
- *bbb
- *ccc
aaa:&aaa1
bbb:&bbb 2
ccc:&ccc3
*aaa:#用于符合通用规范的YAML解析器
您需要在:
之前用空格写它
aaa:&aaa1
bbb:&bbb 2
ccc:&ccc3
*aaa:
-*bbb
-*ccc
YAML 1.2允许:
成为锚定的一部分,因此,如果:
写入别名附近,则不会将该行解析为隐式键(因为它随后成为别名的一部分)。
这是一个很好的例子
用于Symfony
Symfony似乎将*aaa:
解析为别名*aaa
,将:
解析为值指示符。虽然这是违反规范的行为,但这不应该困扰我们,因为根据邮件列表,这更像是规范中的一个疏忽。然而,Symfony在这里无法解决别名问题,您对此无能为力,只能提出一个问题。以后,请给出实际的错误信息,而不是说“它不工作”“。谢谢你的建议。我已经添加了详细信息。这是Symfony的YAML解析器中的一个bug,你需要向他们提交一个问题来解决。我们在这里做不了什么。那么你的问题不是关于YAML,而是关于特定实现中的一个bug。这段代码是有效的YAML,可以通过或(我的工作)在线检查.我很抱歉没有先写细节。这似乎是symfony/yaml的一个bug。。