我正在使用Doctrine 2 Paginator并且我遇到了 Twig 的错误(可能)。考虑一个简单的Paginator
初始化:
$current = 1;
$limit = 5;
$offset = ($current - 1) * $limit;
$qb->setFirstResult($offset)->setMaxResults($this->limit);
// No fetch joins
$items = new \Doctrine\ORM\Tools\Pagination\Paginator($qb->getQuery, false);
// Total count
var_dump($items->count()); // Prints 8
// Number of items displayed
var_dump(count($items)); // Prints 5
// Items
foreach($items as $item) :
var_dump($items->getId()); // Prints 1, 2, 3, 4, 5
endif;
计数对我来说很好。但是在将其分配给 Twig 之后array('items' => $items)
:
{% for item in items %}
{{ loop.index }}/{{ loop.length }}
{% endfo %}
输出是错误的,特别loop.length
是指整个集合(不是当前的项目集)。因此,例如,您不能使用loop.last
:
1/8
2/8
3/8
4/8
5/8