我正在symfony2中呈现一个分支模板,可以获得一个值为数组类型的变量,但我正在尝试预览该变量,并弹出此错误:
数组到字符串的转换。。。
所以我的问题不是如何打印出数组,而是在trick中是否有可能禁用这个错误,这样当数组出现而无法输出时,设置一个空值。
在config.yml中,在trick下我设置了
strict_variables:false
但这不包括打印阵列。
编辑:
在控制器中,我将这个数组传递给trick,例如:
'data' => array(
'description' => array(
'desc1',
'desc2'
)
);
在树枝中,我试图打印{{data〔'description〕}},但我得到了以下错误:
数组到字符串的转换。。。
这是必须弹出的正常错误,但如果我尝试打印此错误,我需要弹出一个无错误,但我不需要打印任何内容(空值),就像尝试打印一个不存在的变量(用设置了分支)一样
strict_variables: false
答案:
制作自定义功能:
public function getFunctions()
{
return array(
'to_string' => new 'Twig_Function_Method($this, 'toString')
);
}
public function toString($data) {
if(is_array($data)) {
return '';
}
return $data;
}
和在树枝模板:
{{ to_string(data['description']) }}
您有两个desc:
desc1
和desc2
,您想打印什么?如果两者都必须使用这种表示法(例如)
{{ data['description'][desc1] }} - {{ data['description'][desc2] }}
更一般的:
{% for desc in data['description'] %}
{{ desc }}
{% endfor %}
编辑
好的,现在我明白了(根据你的评论):
{% if data['description'] is iterable %}
//echo here an empty string
{% else %}
{{ data['description'] }}
{% endif %}