我在树枝模板中有这些线条:
{% for line in order.getItems() %}
{% set os = line.option.getOverstock(true)|first %}
这是指这种方法:
public function getOverstock($getQtyOrdering = false) {
if ($getQtyOrdering === false) {
return $this->overstock;
}
//sort the collection by the quantity field before returning
$iterator = $this->overstock->getIterator();
$iterator->uasort(function ($a, $b) {
return ($a->getQty() < $b->getQty()) ? 1 : -1;
});
$sortResult = new \Doctrine\Common\Collections\ArrayCollection(iterator_to_array($iterator));
return $sortResult;
}
在我的开发环境中,这是完美的工作,但在实时,参数不会传递给方法。我已经检查了live和dev副本相互之间以及我们的存储库 - 一切看起来都很好。
我该如何调试这种情况?
(我在silex框架中工作)
答案 0 :(得分:2)
您可以使用转储功能http://twig.sensiolabs.org/doc/functions/dump.html输出此变量。
或者通过以下方式添加symfony包symfony/var-dumper
:
composer require symfony/var-dumper
将转储功能添加到树枝
$app->extend('twig', function ($twig) use ($app, $request) {
$twig->addFunction('dump', new \Twig_SimpleFunction('dump', '\dump'));
return $twig;
});
并在模板中输出此变量
{% for line in order.getItems() %}
{{ dump(line.option.getOverstock(true)|first) }}
{{ dump(line.option.getOverstock(true)) }}
{{ dump(line) }}
{% set os = line.option.getOverstock(true)|first %}