如何获得结果的数量? - Pagerfanta 和 Twig(在 Symfony 中)
How to get the number of result? - Pagerfanta and Twig (in Symfony)
在我的演示应用程序中,使用 Pagerfanta 只从数据库中读取几行。
public function findAllProductsByCategory($category, int $page = 1): Pagerfanta
{
// DQL = Always select full classes from classes
$query = $this->getEntityManager()
->createQuery('
SELECT p
FROM App\Entity\Product p
WHERE p.category = :category
')
->setParameter('category', $category);
return $this->createPaginator($query, $page);
}
稍后在 Twig 中,我循环预选结果。一切都很好...
{% if products.haveToPaginate %}
<div class="navigation text-center">
{{ pagerfanta(products, 'default', {routeName: 'category_show_paginated', 'routeParams' : { 'id': category.id}}) }}
</div>
{% endif %}
<table border="1" cellpadding="5">
<tr>
<th>#</th>
<th>Name</th>
<th>Products</th>
<th>Description</th>
</tr>
{% for product in products %}
<tr>
<td>{{ loop.index }}</td>
<td><a href="{{ path('products_show', {id: product.id}) }}">{{ product.name }}</a></td>
<td>{{ product.description }}</td>
</tr>
{% endfor %}
</table>
但在每一页上,"loop.index" 都是相同的 1,2,3,4 ...
我想用 pagerfanta 显示结果数 41,42,43 ;)
有什么特别的功能吗?
谢谢
有一段时间没有使用 Pagerfanta
,但是你想要的应该可以用这样的东西来实现:
{{ pagerfanta.currentPageOffsetStart() + loop.index }}
在我的演示应用程序中,使用 Pagerfanta 只从数据库中读取几行。
public function findAllProductsByCategory($category, int $page = 1): Pagerfanta
{
// DQL = Always select full classes from classes
$query = $this->getEntityManager()
->createQuery('
SELECT p
FROM App\Entity\Product p
WHERE p.category = :category
')
->setParameter('category', $category);
return $this->createPaginator($query, $page);
}
稍后在 Twig 中,我循环预选结果。一切都很好...
{% if products.haveToPaginate %}
<div class="navigation text-center">
{{ pagerfanta(products, 'default', {routeName: 'category_show_paginated', 'routeParams' : { 'id': category.id}}) }}
</div>
{% endif %}
<table border="1" cellpadding="5">
<tr>
<th>#</th>
<th>Name</th>
<th>Products</th>
<th>Description</th>
</tr>
{% for product in products %}
<tr>
<td>{{ loop.index }}</td>
<td><a href="{{ path('products_show', {id: product.id}) }}">{{ product.name }}</a></td>
<td>{{ product.description }}</td>
</tr>
{% endfor %}
</table>
但在每一页上,"loop.index" 都是相同的 1,2,3,4 ... 我想用 pagerfanta 显示结果数 41,42,43 ;)
有什么特别的功能吗?
谢谢
有一段时间没有使用 Pagerfanta
,但是你想要的应该可以用这样的东西来实现:
{{ pagerfanta.currentPageOffsetStart() + loop.index }}