Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2数组到字符串转换,设置空值_Php_Arrays_Symfony_Twig_Output - Fatal编程技术网

Php Symfony2数组到字符串转换,设置空值

Php Symfony2数组到字符串转换,设置空值,php,arrays,symfony,twig,output,Php,Arrays,Symfony,Twig,Output,我正在symfony2中呈现一个细枝模板,可能会获取一个值为数组类型的变量,但我正在尝试预览该变量,出现以下错误: 数组到字符串转换 因此,我的问题不是如何打印数组,而是twig中是否可以禁用此错误,以便在数组出现且无法输出时,设置空值 在config.yml中,我在细枝下设置了 严格变量:false 但这不包括打印阵列 编辑: 在控制器中,我将此数组传递给twig,例如: 'data' => array( 'description' => array(

我正在symfony2中呈现一个细枝模板,可能会获取一个值为数组类型的变量,但我正在尝试预览该变量,出现以下错误:

数组到字符串转换

因此,我的问题不是如何打印数组,而是twig中是否可以禁用此错误,以便在数组出现且无法输出时,设置空值

在config.yml中,我在细枝下设置了

严格变量:false

但这不包括打印阵列

编辑:

在控制器中,我将此数组传递给twig,例如:

'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']) }}
您有两个描述:
desc1
desc2
,要打印什么?如果两者都必须使用此符号(例如)

一般而言:

{% for desc in data['description'] %}
    {{ desc }}
{% endfor %}

编辑 好的,现在我(从你的评论中)明白了:


要打印数组,您可以使用
print\u r
var\u export
var\u dump
,但您应该使用数组索引访问其中的数据。发布您的阵列以演示如何访问数据。。。是否要打印数组的内容,或者如果它是数组,则不显示任何内容?请修复错误,不要绕过它。回送数组并尝试抑制它是不可接受的。请添加代码(最简单的示例)为什么不在数组上迭代并打印出每个值?我已经编辑了我的问题我想打印{{data['description']}},我不想看到数组到字符串转换的错误。。。要打印的只是一个空值。
data['description']
不是一个标量值,所以“我想打印出来”是一个无意义的语句是的,这就是问题所在,我需要在twig中添加一些内容,如果我试图回显数组,则响应为空值(字符串)是另一种方式,因为我可以做很多这样的事情,如果每次都要做的话,那就不那么酷了。类似于:严格的数组:false@user3686982:您必须使用迭代语句,如
for
while
。顺便说一句,这回答了你的问题
{% for desc in data['description'] %}
    {{ desc }}
{% endfor %}
{% if data['description'] is iterable %}
    //echo here an empty string
{% else %}
    {{ data['description'] }}
{% endif %}