1.action.class.php
  

   
   
   
   
  1. $q = Doctrine_Core::getTable('cmsContent')->findAll();
  2.    //分页 
  3.    $this->pg=new sfDoctrinePager('modelName',3); 
  4.    $this->pg->setQuery($q); 
  5.    $this->pg->setPage($page,1); 
  6.    $this->pg->init(); 



2.模板代码:
 

   
   
   
   
  1. php if ($pager->haveToPaginate()): ?> 
  2.   <div class="pagination"> 
  3.     <a href="?page=1"> 
  4.       <img src="/p_w_picpaths/first.png" alt="First page" title="First page" /> 
  5.     a> 
  6.   
  7.     <a href="?page=getPreviousPage() ?>"> 
  8.       <img src="/p_w_picpaths/previous.png" alt="Previous page" title="Previous page" /> 
  9.     a> 
  10.   
  11.     php foreach ($pager->getLinks() as $page): ?> 
  12.       php if ($page == $pager->getPage()): ?> 
  13.         php echo $page ?> 
  14.       php else: ?> 
  15.         <a href="?page=">php echo $page ?>a> 
  16.       php endif; ?> 
  17.     php endforeach; ?> 
  18.   
  19.     <a href="?page=getNextPage() ?>"> 
  20.       <img src="/p_w_picpaths/next.png" alt="Next page" title="Next page" /> 
  21.     a> 
  22.   
  23.     <a href="?page=getLastPage() ?>"> 
  24.       <img src="/p_w_picpaths/last.png" alt="Last page" title="Last page" /> 
  25.     a> 
  26.   div> 
  27. php endif; ?> 
  28.   
  29. <div class="pagination_desc"> 
  30.   <strong>php echo count($pager) ?>strong> jobs in this category 
  31.   
  32.   php if ($pager->haveToPaginate()): ?> 
  33.     - page <strong>php echo $pager->getPage() ?>/php echo $pager->getLastPage() ?>strong> 
  34.   php endif; ?> 
  35. div> 



模板所使用的sfDoctrinePager方法列表:

    getResults(): 为当前页返回Doctrine对象数组
    getNbResults(): 返回记录总数
    haveToPaginate(): 当页数超过一页,则返回true
    getLinks(): 返回页面链接列表
    getPage(): 返回当前页码
    getPreviousPage(): 返回前一页页码
    getNextPage(): 返回下一页页码
    getLastPage(): 返回最后一页页码