在我的Twig模板中,我想了解一下我的活跃参与者以及我参加某个锦标赛的参赛者。 所以我写了这段代码
<p>{{ tournament.getcheckedinparticipants.count }}</p>
<p>{{ tournament.getactiveparticipants.count }}</p>
然而,这会返回
1
1
虽然它应该返回
1
10
疯狂的是,当我只输入第二种方法时
<p>{{ tournament.getactiveparticipants.count }}</p>
确实会返回
10
到底是怎么回事?是否存在我不知道的某种干扰?
编辑:它似乎与执行函数的顺序有关。如果我反过来这样做,则返回正确的值。我现在找到了一个小的解决方法,我将结果分配给变量,然后使用正确的顺序显示它们。
{% set actives = tournament.getactiveparticipants.count %}
{% set checkedins = tournament.getcheckedinparticipants.count %}
<p>{{ checkedins }}</p>
<p>{{ actives }}</p>
EDIT2:这些是我的模型方法
/**
* Get participants
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getParticipants()
{
return $this->participants;
}
public function getActiveParticipants() {
$participants = $this->getParticipants();
foreach ($participants as $key => $participant) {
if ($participant->getCancelDate()) {
unset($participants[$key]);
}
}
return $participants;
}
public function getCheckedinParticipants() {
$participants = $this->getParticipants();
foreach ($participants as $key => $participant) {
if (!$participant->getCheckedin()) {
unset($participants[$key]);
}
}
return $participants;
}