1

我有一个这样的数组:

$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>
4

3 回答 3

5

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

试试这个:

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

这应该可以解决问题,而无需通过控制器添加扩展或打印。

于 2013-08-20T16:09:30.900 回答
4

尝试使用 Twig 调试扩展:

树枝 1.x

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

树枝 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>
于 2012-09-25T09:42:56.313 回答
4

使用瓢虫捆绑

一些关键特性:

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

-5 可以在任何控制器中使用的助手

-Symfony 命令

-Symfony 分析器集成

-树枝过滤器

我希望有所帮助。

于 2012-09-25T13:27:14.467 回答