嗨,我使用symfony框架进行了这个分页,我想知道如果页面已经在第一页中,如何隐藏按钮,所以没有上一个按钮,如果最后一页没有下一个按钮。
我如何才能获得当前页面?
这是我的代码:
<?php if ($pager->haveToPaginate()) :?>
<div class="pagerWrapper ">
<nav>
<ul class="pager">
<?php if($currPage != 1):?>
<li class="pageNumber"><?php echo link_to('<img alt="Previous Page" src="/images/pager_prev_btn.png" class="page_img" />', url_for('contract/index?page='.$pager->getPreviousPage()), 'class=""' )?></li>
<?php endif;?>
<?php foreach ($pager->getLinks() as $page) :?>
<li class="pageNumber"><?php echo link_to($page, url_for('contract/index?page='.$page), ($page == $pager->getPage()) ?'class="selected"' : 'class=""')?></li>
<?php endforeach;?>
<?php if($pager->getLastPage() != $currPage): ?>
<li class="pageNumber"><?php echo link_to('<img alt="Next Page" src="/images/pager_next_btn.png" class="page_img" />', url_for('contract/index?page='.$pager->getNextPage()),'class=""')?></li>
<?php endif; ?>
</ul>
</nav>
</div>
<?php endif;?>
继承我的控制器
public function executeIndex(sfWebRequest $request){
$currPage = $request->getParameter('page', 1);
$limit = sfConfig::get('app_contract_list_limit');
$offset = ($currPage - 1) * $limit;
$q = ContractTable::getInstance()->getContractList($offset,$limit);
$this->contractList = $q->execute();
$this->pager = new sfDoctrinePager('Contract', $limit);
$this->pager->setQuery($q);
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
}
请帮助我很困惑,谢谢
答案 0 :(得分:0)
您可以使用$pager->getPage()
获取当前页面
根据 :
http://propelorm.org/reference/model-criteria.html#paginating-results
对于第一页和最后一页,您可以使用类似的内容:
if (!$pager->isFirstPage())
{
}
foreach ($pager->getLinks() as $page)
{
}
if (!$pager->isLastPage())
{
}