如何打印阵列?

时间:2012-09-25 07:17:05

标签: json symfony twig

我有一个这样的数组:

$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));

我希望以这样的可读方式打印它:

Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

我必须将数组传递给Twig模板。我尝试了这个,但我没有得到我想要的结果。你能告诉我改变了什么吗?

在控制器中:

$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
$b = json_encode($a);
$c = json_decode($b, true);

return $this->render('AcmeTestBundle:Home:data.html.twig', array('data' => $c));

在模板中:

{% extends '::base.html.twig' %}

{% block stylesheets %}

    <link href="{{ asset('bundles/acmetest/css/test.css') }}" type="text/css" rel="stylesheet" /> 

{% endblock %}

{% block body %}

    {{ data }}

{% endblock %}

(这是base.html.twig:)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>

3 个答案:

答案 0 :(得分:4)

尝试使用Twig Debug Extensions:

Twig 1.x

<pre>{% debug data %}</pre>

Twig 2.x

{{ dump(user, categories) }}

调试/转储标记仅在debug环境选项设置为true时有效。

https://twig.symfony.com/doc/2.x/functions/dump.html

此外,您可以在没有调试扩展程序的情况下尝试此操作:

$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));

return $this->render('AcmeTestBundle:Home:data.html.twig', array('data' => var_export($a, true)));

在模板中:

<pre>{{ data }}</pre>

答案 1 :(得分:4)

使用LadybugBundle

一些主要功能:

- 转储数组,对象,GD图像

可以在任何控制器中使用的

-5助手

-Symfony命令

-Symfony profiler integration

-Twig Filter

我希望有所帮助。

答案 2 :(得分:4)

您可以在树枝模板中使用转储功能。

试试这个:

<pre>{{ dump(data) }}</pre>

无需通过控制器添加扩展程序或打印即可完成此操作。