Reputation: 81
i have many records of user. like username, userid, address etc. i like to display all user records page wise. 10 records per page. how can i do with symfony1.4. i dont have any idea, so i cant posting any code some one tell me that
$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();
but i dont know how to implement in symfony1.4
Upvotes: 1
Views: 2094
Reputation: 5755
You need to read more about Pager in symfony, for example, this is my basic action code.
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();
}
Also you probably will need these additional functions:
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');
}
Upvotes: 4