नहीं दिखा रहा क्वेरी में 6 रिकॉर्ड है और इस कोड को सही ढंग से 3 पृष्ठों पर इसे दिखाने:ZF2 paginator अंतिम पृष्ठ
(action)
public function listAction()
{
$page = (int) $this->params()->fromRoute('id', 0);
$posts = $this->getPagesTable()->selectPages();
$paginator = new Paginator(new PaginatorIterator($posts));
$paginator->setCurrentPageNumber($page)
->setItemCountPerPage(2)
->setPageRange(7);
return new ViewModel(array(
'paginator' => $paginator,
));
}
(view)
<?php foreach ($paginator as $post) : ?>
<h2><?php echo $this->escapeHtml($post->id); ?></h2>
<div><?php echo $this->escapeHtml($post->name);?>
<?php endforeach; ?>
लेकिन जब मैं कार्रवाई में foreach पाश जोड़ें:
public function listAction()
{
$page = (int) $this->params()->fromRoute('id', 0);
$posts = $this->getPagesTable()->selectPages();
$paginator = new Paginator(new PaginatorIterator($posts));
$paginator->setCurrentPageNumber($page)
->setItemCountPerPage(2)
->setPageRange(7);
foreach ($paginator as $post) {
// some code or empty foreach
};
return new ViewModel(array(
'paginator' => $paginator,
));
}
पेजिनेटर अंतिम (3) पृष्ठ नहीं दिखाता है (1 और 2 पृष्ठ सही ढंग से दिखाया गया है)। क्यों? धन्यवाद!
हैं $ paginator- जोड़ने> getIterator() -> रिवाइंड() foreach के बाद {}, paginator शो केवल प्रथम पृष्ठ और दूसरे और तीसरे पृष्ठों नहीं दिखाते।
एक अजीब समस्या है, लेकिन आप कार्रवाई में एक खाली foreach क्यों है? यदि आपने उदाहरण को छोटा बनाने के लिए वहां कोड हटा दिया है तो आपने समस्या को हटा दिया होगा! मैंने भी सोचा होगा कि $ पदों के माध्यम से लूपिंग अधिक कुशल रहेगी? – CodeMonkey
असली परियोजना में foreach में कुछ कोड शामिल हैं। – morin
@CodeMonkey '$ posts' में सभी पंक्तियां हैं जहां' $ पेजिनेटर 'सीमित आइटम हैं (जो पृष्ठ पर प्रदर्शित होने जा रहे हैं)। देखने के लिए पहले 'आइटम' में उन आइटमों को प्राप्त करने के लिए, आपको ऐसे लूप की आवश्यकता है (जैसे खाली लूप या '$ पेजिनेटर-> getCurrentItems()' या $ paginator-> getItemsByPage ($ पृष्ठ) ') के परिणामस्वरूप ऊपर दिए गए नमूने '$ paginator' आइटम खाली में। – webcoder