我正在使用dump
的{{1}}功能。
但它显示数据“折叠”,如下所示:
当我点击箭头时,我可以通过展开来显示数据,就像在这里:
有没有办法告诉twig
或twig
直接展示完全展开的对象。
Thansk!
答案 0 :(得分:2)
您可以使用javascript(jQuery)执行此操作:
// Expand all dump levels of all sf-dumps on a page.
$("pre.sf-dump").each(function() {
$(this).find("a.sf-dump-toggle:gt(0)").each(function(i, a){
a.click();
});
})
这模拟用户点击页面上每个sf-dump的每个转储切换(不包括gt(0)
的第一个)。
编辑:我添加了一个each()函数,使脚本可以处理页面上可能存在的任意数量的sf-dump。感谢@Xavi
答案 1 :(得分:1)
快速的方法是在你的css中添加它:
pre.sf-dump .sf-dump-compact {
display: block;
}
箭头不再适用了。但是如果你不关心切换,你可以用这个css规则隐藏它们:
.sf-dump-toggle {
display: none;
}
答案 2 :(得分:1)
一旦转储了数据,就必须按住Ctrl键并在根节点上单击鼠标左键
答案 3 :(得分:1)
您可以创建自己的转储服务,并让twig使用它,而不是twig-bridge扩展默认使用的服务。
首先,创建您自己的服务类,扩展实际的类:
namespace App\Services;
use Symfony\Component\VarDumper\Dumper\HtmlDumper;
class MyHtmlDumper extends HtmlDumper
{
public function __construct($output = null, string $charset = null, int $flags = 0) {
parent::__construct($output, $charset, $flags);
$this->setDisplayOptions(['maxDepth' => 3]);
}
}
第二,让树枝桥使用它。在services.yaml
的{{1}}下添加:
services:
仅此而已!
您可以为 var_dumper.html_dumper: '@App\Services\MyHtmlDumper'
选择另一个值,或更改其他选项。
答案 4 :(得分:0)
设置var dumper的显示选项:
VarDumper::setHandler(function ($var) {
$cloner = new VarCloner();
$dumper = 'cli' === PHP_SAPI ? new CliDumper() : new HtmlDumper();
$dumper->setDisplayOptions(['maxDepth' => 3]);
$dumper->dump($cloner->cloneVar($var));
});
请参阅https://symfony.com/doc/current/components/var_dumper/advanced.html
答案 5 :(得分:0)
要使对象转储完全折叠,请使用以下jQuery代码段:
$(".sf-dump-expanded").removeClass("sf-dump-expanded").addClass("sf-dump-compact");
答案 6 :(得分:-1)
我不确定你在照片中显示的是什么,但让我们说比如它是一个游览实体。然后,您可以使用您的setter和getter访问并显示在dump
中。所以在上面你有一张显示Tour对象的图片并将其转储到Twig中。游览实体可能有getTourId()
类型的方法。
所以要在你的树枝上展示,你可以这样做:
{{ dump(tour.getTourId) }}
当你看到多个级别时,它可能是一个数组集合。然后你需要得到子实体可以调用它的方法。假设一个游览实体,有一个日期集合(一个日期实体),也许日期实体有一个getDate()
函数。
那么你会这样打电话:
{{ dump(tour.getDate[0].getDate) }}
其中getDate[0]
是Tour对象中Dates数组集合中的第一个元素。元素是一个对象,因此您可以将其称为方法getDate
。
这就是Twig的工作方式。它基于所有对象,并且非常易于使用。通常不使用转储。您不希望在生产环境中使用它,因为您可能会让用户看到着名的500
错误页面。