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也可以
希望有帮助