打印简单值时触发Twig语法错误,ticker.24h_open无法显示,24是否为Twig保留关键字?
解决Twig中访问
ticker.24h_open的语法错误问题 嘿,先直接给你答案:24并不是Twig的保留关键字,你遇到的错误完全是Twig的属性解析规则导致的。
错误原因
Twig在解析.属性访问语法时,要求属性名不能以数字开头。当你写{{ ticker.24h_open }}时,Twig会把它错误解析成:尝试访问ticker的24属性,然后紧接着又出现了h_open这个令牌——它以为你是在调用某个需要参数的函数/过滤器,所以才会抛出“参数必须用逗号分隔,意外收到name令牌h_open”的错误。
解决方法
这里有几种简单的修复方式:
- 方括号访问语法(最推荐):用方括号包裹属性名,Twig会直接把它当作字符串属性名处理,完美避开解析问题:
{{ ticker['24h_open'] }} - 重命名属性(后端处理):如果是在PHP端传递
ticker变量给Twig,可以把24h_open重命名为符合Twig规则的名称,比如twentyFourHourOpen,之后在Twig里就可以正常用.访问:{{ ticker.twentyFourHourOpen }} - 自定义过滤器(进阶):如果有大量类似带数字开头的属性需要处理,可以写一个Twig自定义过滤器,专门解析这类属性名,但这种方法适合场景复杂的情况,一般第一种就足够解决问题了。
内容的提问来源于stack exchange,提问作者Sunchaser
相关产品推荐
相关产品推荐

