Twig 将数据分成表格
Twig dividing data into tables
我正在开发一个网络应用程序,但我 运行 遇到了麻烦,我已经从我的数据库中收集了数据并将记录显示到数据中 table,我的问题是我不能只有一个 table 客户希望我根据列中的整数 (omloopNummer) 将 table 分成多个。
到目前为止我得到的最好的是使用以下代码它将 table 拆分为 4 个 tables 如果数据库中的整数将变为 1,2,3, 4 但它只会在每个 table 中显示 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 %}
您正在循环浏览决斗记录,但每个 omloopNumber 只显示一条记录。
你能否尝试将你的决斗记录分组到具有相同 omloopNumber 的数组中,然后将每个数组渲染为一个 Tablet。
或者在从数据库中获取数据时可以按omloopNumber 排序吗?然后你可以在一个循环中完成它,每次 omloopNumber 增加你开始一个新的 table.
在传递给 twig 之前,您可以在控制器中使用 PHP 通过 omloopNummer
对 Duels
进行分组。
$duels = $duelRepository->findAll();
$sorted = [];
foreach($duels as $duel){
$sorted[$duel->getOmloopNummer()][] = $duel;
}
return $this->render('template.html.twig', [
'duel_groups' => $sorted,
]);
然后在 twig 中,循环遍历排序数组,为每个非空组构建一个 table 并在 each 内部tbody
遍历该组。
{% for group in duel_groups %}
...
{% if group is not empty %}
<table>
...
<tbody>
{% for duel in group %}
<tr>...</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
...
{% endfor %}
我正在开发一个网络应用程序,但我 运行 遇到了麻烦,我已经从我的数据库中收集了数据并将记录显示到数据中 table,我的问题是我不能只有一个 table 客户希望我根据列中的整数 (omloopNummer) 将 table 分成多个。
到目前为止我得到的最好的是使用以下代码它将 table 拆分为 4 个 tables 如果数据库中的整数将变为 1,2,3, 4 但它只会在每个 table 中显示 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 %}
您正在循环浏览决斗记录,但每个 omloopNumber 只显示一条记录。
你能否尝试将你的决斗记录分组到具有相同 omloopNumber 的数组中,然后将每个数组渲染为一个 Tablet。
或者在从数据库中获取数据时可以按omloopNumber 排序吗?然后你可以在一个循环中完成它,每次 omloopNumber 增加你开始一个新的 table.
在传递给 twig 之前,您可以在控制器中使用 PHP 通过 omloopNummer
对 Duels
进行分组。
$duels = $duelRepository->findAll();
$sorted = [];
foreach($duels as $duel){
$sorted[$duel->getOmloopNummer()][] = $duel;
}
return $this->render('template.html.twig', [
'duel_groups' => $sorted,
]);
然后在 twig 中,循环遍历排序数组,为每个非空组构建一个 table 并在 each 内部tbody
遍历该组。
{% for group in duel_groups %}
...
{% if group is not empty %}
<table>
...
<tbody>
{% for duel in group %}
<tr>...</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
...
{% endfor %}