我有一个这样的数组:
$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>
答案 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)
一些主要功能:
- 转储数组,对象,GD图像
可以在任何控制器中使用的-5助手
-Symfony命令
-Symfony profiler integration
-Twig Filter
我希望有所帮助。
答案 2 :(得分:4)
您可以在树枝模板中使用转储功能。
试试这个:
<pre>{{ dump(data) }}</pre>
无需通过控制器添加扩展程序或打印即可完成此操作。