Если вы хотите сделать это точно , как это делается на бэкэнде, вы можете использовать генератор администратора в приложениях внешнего интерфейса. Более общим и настраиваемым способом было бы просто создать список и фильтровать действия и использовать фильтры форм Symfony. Вот базовый пример для модельного класса «Артикул»:
В классе действий:
class articleActions extends sfActions
{
public function executeList(sfWebRequest $request)
{
$this->form = new ArticleFormFilter();
$this->pager = new sfDoctrinePager('Article');
}
public function executeFilter(sfWebRequest $request)
{
$this->form = new ArticleFormFilter();
$this->form->bind($request[$this->form->getName()]);
if ($this->form->isValid())
{
$this->pager = new sfDoctrinePager('Article');
$this->pager->setQuery($this->form->getQuery());
$this->setTemplate('list');
}
//handle invalid form here
}
}
Видите, итерируйте пейджер броска так:
foreach($pager->getResults() as $article)
Doctrine FormFilter's довольно похожи на Doctrine формы. Начните с настройки формы внутри FormFilter :: configure ();