可以使用过滤器参数对Twig计算数组长度

时间:2016-10-02 20:32:19

标签: symfony twig

我有一个Account对象,其中包含与newsbrief成员的一对多关系。在Twig中想要显示成员的数量。我知道我可以使用以下代码显示数量:

{{ account.mailList|length }}

只有mailList也包含非活动成员。有了这些成员,他们的领域活跃是错误的有没有办法过滤掉它们?这种工作方式是否会降低应用程序的速度?

2 个答案:

答案 0 :(得分:3)

您可以在返回活动成员的帐户实体上创建方法

// src/AppBundle/Entity/Account.php
public function getActive()
{
    $count = 0;

    foreach($this->getMailList() as item) {
        if (item->isActive()) { // Assuming the newsbrief members are entities
            $count++            // with an $active property & isser().
        }
    }

    return $count;
}

并从Twig那里打电话:

{{ account.getActive() }} # or {{ account.active }}

答案 1 :(得分:0)

你可以在树枝中使用for循环:

{% set activeMailCount = 0 %}
{% for mail in account.mailList if account.mailList.active %}
    {% set activeMailCount = activeMailCount + 1 %}
{% endfor %}