在IF语句中使用Twig计算数组中的项数

时间:2013-09-26 15:12:18

标签: symfony twig

我正在为应用程序构建一个帮助中心,我希望能够显示特定类别中的主题数量。目前,这就是我所拥有的:

{% for cat in cats %}
    <div class="panel panel-default">
        <div class="panel-heading">
            <h4 class="panel-title">
                <a class="accordion" data-toggle="collapse" data-parent="#helpcategories" href="#category{{cat.id}}">
                    {{cat.category}}
                    {% for top in tops %}
                        {% if top.category == cat.id %}
                            <span class="badge pull-right">
                                {{ tops|length }}
                            </span>
                        {% endif %}
                    {% endfor %}
                </a>
            </h4>
        </div>
        <div id="category{{cat.id}}" class="panel-collapse collapse">
            <div class="panel-body">
                <ul class="nav nav-pills nav-stacked">
                    {% for top in tops %}
                        {% if top.category == cat.id %}
                            <li><a href="#" class="list-group-item">{{top.title}}</a></li>
                        {% endif %}
                    {% endfor %}
                </ul>
            </div>
        </div>
    </div>
{% endfor %}

正如您所看到的,我使用Twig将主题分类到各自的类别中。您还可以看到,在我要显示的某个类别中我正在使用{{tops|length}}的主题数量的区域中。但是,这会返回总数的主题数,而不是每个类别。

如何让Twig计算某个主题出现在某个类别中的次数?

1 个答案:

答案 0 :(得分:2)

我建议您不要使用模板语言来构建这些计数,而是在进入模板之前在应用程序中执行此操作,因为如果您决定进行分页,这将使您能够在分页前显示总计数。