Symfony1 使用PropelPager的页面的URL是什么?
我对该代码有一个操作:Symfony1 使用PropelPager的页面的URL是什么?,symfony1,propel,Symfony1,Propel,我对该代码有一个操作: $c = new Criteria(); $c->addJoin(sfGuardUserProfilePeer::USER_ID, sfGuardUserGroupPeer::USER_ID, Criteria::INNER_JOIN); $c->add(sfGuardUserGroupPeer::GROUP_ID, 2 ); $this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'd
$c = new Criteria();
$c->addJoin(sfGuardUserProfilePeer::USER_ID, sfGuardUserGroupPeer::USER_ID, Criteria::INNER_JOIN);
$c->add(sfGuardUserGroupPeer::GROUP_ID, 2 );
$this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'doSelect', $page = 2, $rowsPerPage = 1);
在相应的模板中:
<table>
<?php foreach ($pager->getResult() as $book): ?>
<tr>
<td><?php echo $book->getName() ?></td>
<td><?php echo $book->getSurname() ?></td>
</tr>
<?php endforeach; ?>
</table>
当我调用这个动作时,我会得到第一个结果的页面,但是第2页的URL是什么
谢谢
sf 1.4/pr 1.5
Javi首先,您必须更正代码:
$this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'doSelect', $page, $rowsPerPage);
其次,只有您定义了在操作中如何处理页码。我更喜欢URL中的page
参数:
// $request - a sfWebRequest object passed to your action
$page = $request->getParameter('page', 1); // first page by default
$this->pager = new PropelPager($c, 'sfGuardUserProfilePeer', 'doSelect', $page = 2, $rowsPerPage = 1);
然后您必须手动生成指向视图中页面的链接:
<table>
<?php if ($pager->getNbResults()): ?>
<?php foreach ($pager->getResults() as $book): ?>
<tr>
<td><?php echo $book->getName() ?></td>
<td><?php echo $book->getSurname() ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>
</table>
<?php if ($pager->haveToPaginate()): ?>
display pagination here and generate "uri/?page=N" links
<?php endif; ?>
在此处显示分页并生成“uri/?page=N”链接
因此,所有可用页面都由$pager->getLinks()
检索。结果是数组
进一步阅读:
- 。1.4也可以