Twig模板访问需变量展开的变量报错,如何解决?
解决Twig中变量作为数组键名的语法错误问题
嘿,我来帮你搞定这个Twig的语法报错!你遇到的Twig_Error_Syntax: Expected name or number,根源是用错了变量作为数组键名的写法——~type~是Twig的字符串拼接语法,不是用来引用变量键名的方式,所以Twig解析的时候直接懵了。
对应你要实现的PHP代码$server['options_array']['options'][$type]['name'],在Twig里有两种正确的写法:
写法一:点语法(Twig推荐风格)
{{ server.options_array.options[type].name }}
写法二:方括号语法(和PHP写法更接近)
{{ server['options_array']['options'][type]['name'] }}
为什么之前的写法不对?
~在Twig里是字符串连接操作符,比如你写"prefix_" ~ type ~ "_suffix",是把type的值拼到两个字符串中间。但你这里是要把type作为数组的键名来访问,不是拼接字符串,所以用~会让Twig把它当成普通字符串的一部分去解析,自然找不到对应的键,还触发了语法错误。
举个实际例子:如果type变量的值是"mysql",上面两种正确写法都会解析成访问$server['options_array']['options']['mysql']['name'],完全符合你的需求。
内容的提问来源于stack exchange,提问作者ZCT
相关产品推荐
相关产品推荐

