如何在symfony1.4中进行分页

时间:2013-12-02 07:30:21

标签: symfony-1.4

我有很多用户记录。像用户名,用户ID,地址等。 我想明智地显示所有用户记录。每页10条记录。 我怎么能用symfony1.4。我什么都不知道,所以我不能发布任何代码 有人告诉我

$query=Doctrine_Query::create()
->select('c.name, d.phone')
->from('company c, companyDetails d')
->where('c.companyId=d.companyId');

$pager = new sfDoctrinePager('company',10);
$pager->setQuery($query);
$pager->setPage(1);
$pager->init();
$this->companys=$pager->getResults();

但我不知道如何在symfony1.4中实现

1 个答案:

答案 0 :(得分:4)

您需要在symfony中阅读有关Pager的更多信息,例如,这是我的基本操作代码。

  public function executeIndex(sfWebRequest $request)
  {
    if ($request->getParameter('pages'))
    {
      $this->getUser()->setAttribute('pages', $request->getParameter('pages'));
    }    

    // sorting
    if ($request->getParameter('sort') && $this->isValidSortColumn($request->getParameter('sort')))
    {
      $this->setSort(array($request->getParameter('sort'), $request->getParameter('sort_type')));
    }

    // pager
    if ($request->getParameter('page'))
    {
      $this->setPage($request->getParameter('page'));
    }

    $this->pager = $this->getPager();
    $this->sort = $this->getSort();
  }

此外,您可能还需要这些附加功能:

protected function getPager()
  {
    $pager = $this->configuration->getPager('YourModelHere');
    $pager->setQuery($this->buildQuery());
    $pager->setPage($this->getPage());

    $pager->setMaxPerpage($this->getUser()->getAttribute('pages', sfConfig::get('app_results_per_page', 10)));
    $pager->init();

    return $pager;
  }

  protected function setPage($page)
  {
    $this->getUser()->setAttribute('module_name.page', $page, 'admin_module');
  }

  protected function getPage()
  {
    return $this->getUser()->getAttribute('module_name.page', 1, 'admin_module');
  }