我在symfony2中渲染一个twig模板,并且它可以获得一个具有数组类型值的变量,但我正在尝试预览变量并且弹出此错误:
数组到字符串转换......
所以我的qustion不是如何打印出数组,但是可以在twig中禁用此错误,所以当一个数组出现并且无法输出时,设置一个空值。
在config.yml中,在twig下我已经设置了
strict_variables:false
但这个剂量不包括打印阵列。
编辑:
在控制器中,我将此数组传递给twig,例如:
'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']) }}
答案 0 :(得分:0)
你有两个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 %}