【发布时间】:2014-09-11 10:19:21
【问题描述】:
我正在 symfony2 中渲染一个 twig 模板,它可能会获得一个具有数组类型值的变量,但我正在尝试预览该变量并且弹出此错误:
数组到字符串的转换...
所以我的问题不是如何打印出数组,而是在twig中是否可以禁用这个错误,所以当一个数组来了并且无法输出时,设置一个空值。
在 config.yml 中,我已经在 twig 下设置了
strict_variables: 假
但这不包括打印数组。
编辑:
在控制器中我将此数组传递给树枝,例如:
'data' => array(
'description' => array(
'desc1',
'desc2'
)
);
在 twig 中,我尝试打印 {{ data['description'] }},但出现以下错误:
数组到字符串的转换...
这是必须弹出的正常错误,但如果我尝试打印此错误时我需要弹出,但我需要打印任何内容(空值),就像尝试使用 twig 打印不存在的变量一样用
设置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']) }}
【问题讨论】:
-
要打印数组,您可以使用
print_r、var_export或var_dump,但您应该使用数组索引访问其中的数据。发布您的数组以向您展示如何访问数据 -
我很困惑...您是要打印数组的内容,还是如果它是数组则什么也不显示?
-
修复错误,不要四处走动。回显数组并尝试抑制它是不可接受的。请添加您的代码(最小示例)
-
为什么不遍历数组并打印出每个值?
-
我已经编辑了我的问题
标签: php arrays symfony twig output