与另一种方法结合使用时执行不同的对象方法

时间:2015-10-26 16:46:36

标签: symfony twig

在我的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;
}

0 个答案:

没有答案