ArrayIterator::valid()
메서드에 문제가 있습니다. 항상 사실을 반환합니다. 나는 그것이 작동하는 방법을 이해하고, 아니면 내가 뭔가 잘못하고 생각하지 않으면 나는 ArrayIterator의 valid()가 항상 true로 표시됩니다.
\Countable
및
\IteratorAggregate
구현 않는 교리의 매기기
http://www.doctrine-project.org/api/orm/2.1/source-class-Doctrine.ORM.Tools.Pagination.Paginator.html
를 사용하여 ... 모르겠어요. getIterator()
메서드는 \ArrayIterator
을 반환합니다. 보기에서
내가 할 :
<?php foreach ($this->paginator as $message): ?>
<?php var_dump($this->paginator->valid()); ?> // Fatal error. Method does not exist
<?php var_dump($this->paginator->getIterator()->valid()); ?> // <-- it always return true
<p>Teeeeeest</p>
<?php endforeach; ?>
나는 또한 시도 :
<?php $paginator = $this->paginator->getIterator(); ?>
<?php foreach ($paginator as $message): ?>
<?php var_dump($paginator->valid()); ?> // <-- it always return true
<p>Teeeeeest</p>
<?php endforeach; ?>
var_dump($this->paginator)
내가이 개 기록이 있음을 보여준다. 따라서 첫 번째 반복에서 true
을 얻고 두 번째 반복에서 false
을 얻어야합니다. 나 맞아? 그렇다면 항상 돌아 오는 이유 true
은'foreach'에만 유효 항목을합니다 (그러나 아마 foreach 문이 반복 후 반복자를 재설정합니다). '$ paginator-> next()'를 사용하면 마지막 항목이 처리 된 후'false'로 끝납니다. – JustOnUnderMillions