将数据划分为表的细枝

2q5ifsrm  于 2021-10-10  发布在  Java
关注(0)|答案(2)|浏览(381)

我正在开发一个Web应用程序,但我遇到了一个小问题,我从数据库收集了数据,并将记录显示到一个datatable中,我的问题是我不能只拥有一个表,客户希望我根据Integer在一列中的内容将表分成多个表(omloopnummer)。
到目前为止,我得到的最好的结果是使用下面的代码,它将把表拆分成4个表,如果数据库中的整数为1,2,3,4,那么它将在每个表中只显示1条记录,而它应该更多。
如果有任何其他简单的解决办法,而不是使用树枝,我会很乐意尝试它。

<div id="index" class="table-responsive">
{% set i = 1 %}
{% for duel in duels %}
    {% if duel.omloopNummer == i %}
        {% set i = i + 1 %}
<table id="" class="table display-" style="width: 90%; margin-top: 30px">
    <thead>
        <tr>
            <th>Omloop</th>
            <th>Team 1</th>
            <th>vs</th>
            <th>Team 2</th>
            <th>Acties</th>
        </tr>
    </thead>

    <tbody>
        <tr>
            <td>{{ duel.omloopNummer }}</td>
            <td>{{ duel.team1 }}</td>
            <td>vs</td>
            <td>{{ duel.team2 }}</td>
            <td>{{ include('duel/_delete_form.html.twig') }}</td>
        </tr>
    </tbody>
</table>
{% endif %}
{% endfor %}
qlvxas9a

qlvxas9a1#

您可以使用php进行分组 Duels 通过 omloopNummer 在传递到细枝之前,在控制器中。

$duels = $duelRepository->findAll();
$sorted = [];
foreach($duels as $duel){
  $sorted[$duel->getOmloopNummer()][] = $duel;
}

return $this->render('template.html.twig', [
  'duel_groups' => $sorted,
]);

然后在twig中,在排序的数组中循环,为每个非空组和每个组内部构建一个表 tbody 在小组中循环。

{% for group in duel_groups %}
  ...
  {% if group is not empty %}
  <table>
    ...
    <tbody>
      {% for duel in group %}
        <tr>...</tr>
      {% endfor %}
    </tbody>
  </table>
  {% endif %}
  ...
{% endfor %}
llycmphe

llycmphe2#

您正在循环查看决斗记录,但每个omloopnumber只显示一条记录。
您是否可以尝试将决斗记录分组到具有相同omloopnumber的数组中,然后将每个数组作为一个平板电脑进行渲染。
或者,当从数据库中获取数据时,您可以按omloopnumber排序吗?然后,您可以在一个循环中执行此操作,每次omloopnumber增加时,您都会启动一个新表。

相关问题