If you want to do it exactly like it is done on the backend, you can use the admin generator on frontend applications. A more general and customizable way would be to simply create list and filter actions and use Symfony's form filters. Here's a basic example for a model class "Article":
In an actions class:
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 } }In view, iterate throw pager like this:
foreach($pager->getResults() as $article)Doctrine FormFilter's are fairly similar to Doctrine forms. Get started by configuring the form inside of FormFilter::configure();
No comments:
Post a Comment