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