zend frameworkページング(Zend_Paginator_Adapter_Null定義$paginator)


ネット上でzend frameworkがfectall()ではないページの中国語の参考はめったにありません.ここでは初心者の参考を提供します.
//controllerコントローラメソッド

  
  
  
  
  1. //controler
  2.   public function findAction() 
  3.     { 
  4.          
  5. $this->view->results = "  "
  6.        
  7.          $basUser=new BasUser(); 
  8.         // model
  9.           $count=$basUser->getAdapter()->fetchOne("SELECT count(*) FROM Bas_User"); 
  10.          //  basuser , fetchAll() , , cout(*) fetchAll()
  11. //
  12.            $page = $this->_request->getParam('page', 1); 
  13.           // page,
  14.           $rows=$basUser->fetchAll('true','userId',5,($page-1)*5); //   
  15.            // basuser userId
  16.           $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null($count)); 
  17.         
  18.            $paginator->setItemCountPerPage(5); //  20  
  19.            $paginator->setCurrentPageNumber($page); 
  20.         
  21.    
  22.          $this->view->basUsers=$rows; 
  23.         $this->view->paginator = $paginator ; // paginator view
  24.                           
  25.         $this->render("index/find",null,true); 
  26.     } 

 
find.phtml viewレイヤ

  
  
  
  
  1. <html> 
  2. <body> 
  3. <style> 
  4. /* */ 
  5. .pages{font-size:12px; color:#000; text-align:center; zoom:1; padding:10px 0; } 
  6. .pages a{display:inline-block;padding:3px 5px 2px 5px;text-indent:0;width:16px;} 
  7. .pages span{font-size:12px; margin:0px 2px;padding:3px 5px 1px 5px;text-align:center;border:1px solid #D1E7FF;color:#075aaa;font-weight:bold;cursor:pointer;} 
  8. .pages .pagesOn{color:#000; border-color:#fff} 
  9. .pages .disabled{color:#999; border-color:#999; cursor:default;} 
  10. </style> 
  11. <h1>Example</h1> 
  12. <table> 
  13.     <tr> 
  14.         <th> </th> 
  15.         <th> &nbsp; </th> 
  16.     </tr> 
  17. <?php 
  18. foreach ($this->basUsers as $key => $value) { 
  19.     ?> 
  20. <tr> 
  21.         <td> 
  22.      <?php 
  23.      echo $value['userId']; 
  24.     echo $value['userName'];?> 
  25.     </td> 
  26.         <td> 
  27.         <?php 
  28.     echo $value['userPassword']?> 
  29.     </td> 
  30.     </tr> 
  31. <?php 
  32. ?>   
  33. </table> 
  34.   
  35. <?php echo $this->paginationControl($this->paginator, 
  36.                                     'Sliding', 
  37.                                     'index/pager.phtml'); ?> 
  38. </body> 
  39. </html> 

 
pager.phtmlページング層

  
  
  
  
  1. <!-- 
  2. See http://developer.yahoo.com/ypatterns/pattern.php?pattern=searchpagination 
  3. --> 
  4.   
  5. <?php if ($this->pageCount): ?> 
  6. <div class="pages"> 
  7. <!-- Previous page link --> 
  8. <?php if (isset($this->previous)): ?> 
  9. <span><a href="<?php echo $this->url(array('page' => 1)); ?>"> 
  10.     &lt;&lt; 
  11.   </a></span> 
  12.   <span><a href="<?php echo $this->url(array('page' => $this->previous)); ?>"> 
  13.     &lt; 
  14.   </a></span> 
  15.    
  16. <?php else: ?> 
  17.  <span class="disabled">&lt;&lt;</span>  
  18.   <span class="disabled">&lt;</span>   
  19. <?php endif; ?> 
  20.   
  21. <!-- Numbered page links --> 
  22. <?php foreach ($this->pagesInRange as $page): ?> 
  23.   <?php if ($page != $this->current): ?> 
  24.     <span><a href="<?php echo $this->url(array('page' => $page)); ?>"> 
  25.         <?php echo $page; ?> 
  26.     </a></span> 
  27.   <?php else: ?> 
  28.   <span class="pagesOn"> 
  29.     <?php echo $page; ?>  
  30.     </span> 
  31.   <?php endif; ?> 
  32. <?php endforeach; ?> 
  33.   
  34. <!-- Next page link --> 
  35. <?php if (isset($this->next)): ?> 
  36.   <span><a href="<?php echo $this->url(array('page' => $this->next)); ?>"> 
  37.      &gt; 
  38.   </a></span> 
  39.   <span><a href="<?php echo $this->url(array('page' => $this->pageCount)); ?>"> 
  40.      &gt;&gt; 
  41.   </a></span> 
  42. <?php else: ?> 
  43.   <span class="disabled">&gt;</span> 
  44.   <span class="disabled">&gt;&gt;</span> 
  45. <?php endif; ?> 
  46. </div> 
  47. <?php endif; ?> 

注意:fetchAll()メソッドを使用してすべてのレコードを問合せ、$paginator=Zend_Paginator::factory($userArray);メソッドは$paginatorを定義し、データ量の大きい環境では使用できません.学習時にしか使用できません.本論文では
 $paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Null($count)); 
メソッド$paginator効率がfactoryより高い方法を定義します!
ヒントが見つからない場合Zend_Paginator_Adapter_Nullは手動でロードできます:Zend_Loader::loadClass('Zend_Paginator_Adapter_Null');
本文は“林清楊--技術ブログ”のブログから出て、転載をお断りします!