如何在Twig数组中使用Twig字符串变量?
解决Liquid数组定义中的变量插值错误
这个问题我之前写Liquid模板时也踩过坑,其实是对Liquid两种语法标签的使用场景搞混了~
先看你遇到的错误提示:A hash key must be a quoted string, a number, a name, or an expression enclosed in parentheses (unexpected token "punctuation" of value "{",核心原因有两个:
- 你在
{% %}逻辑标签里误用了{{ }}插值语法:{{ }}是用来把变量内容输出到页面的,而{% %}内部是处理逻辑、定义变量的地方,直接写变量名就能引用它的值,不需要套{{ }}; - 定义变量时漏掉了Liquid要求的
assign关键字,直接写arrayData = ...不符合语法规范。
修正后的代码
{% assign arrayData = ['hello', myVar, 'is', 'your', 'coding', 'master'] %}
为什么这样能解决问题?
- 加上
assign关键字:这是Liquid中定义变量的标准方式,告诉模板“我要把后面的数组赋值给arrayData这个变量”; - 把
{{ myVar }}改成myVar:在{% %}逻辑块内部,直接使用变量名就能解析它的实际值(也就是你设置的'this'),最终生成的数组就是['hello', 'this', 'is', 'your', 'coding', 'master'],完全符合你的需求。
内容的提问来源于stack exchange,提问作者DevelJoe
相关产品推荐
相关产品推荐

