Ein Filter-Formular mit Extbase und Fluid

Szenario: Wir haben eine Übersichtsseite und wollen die Ergebnisse durch einen Filter einschränken. Um das zu bewerkstelligen brauchen wir ein Formular, in dem Kriterien angegeben werden können. Ich gehe davon aus, dass der Controller inkl. Template bereits vorhanden ist. Wir ergänzen im Template also das Form-Element:

<f:form object="{filter}" objectName="filter">
 
  <f:form.textfield property="fulltext" />
  <f:form.select property="country" options="{countryOption}" />
 
  <f:form.submit value="ok" />
</f:form>

Im Controller ergänzen wir die Action:

/**
 * action list
 * @param Tx_MyExtension_Domain_Model_DemoFilter $filter
 * @dontvalidate $filter
 * @return void
 */
 public function listAction(Tx_MyExtension_Domain_Model_DemoFilter $filter=null) {
 
   if(!$filter)
     $filter=new Tx_MyExtension_Domain_Model_DemoFilter();
 
   // Filter verarbeiten und Daten entsprechend Filterwerten holen
   // $data=...repository->findByFilter($filter);
   // $this->view->assign($data);
 
   $this->view->assign('filter', $filter);
   $this->view->assign('countryOption', array('DE', 'EN'));
 }

Das Model möchte ich an dieser Stelle nicht erklären, da es keine Besonderheiten enthält.

4 Gedanken zu “Ein Filter-Formular mit Extbase und Fluid

      • Meines Erachtens fehlt vor allem, wie man aus den abgesendeten GP Parametern eine gefilterte Liste erstellt. Die eigentlich interessante Methode „findByFilter()“ hast du hier gar nicht dargestellt.

Kommentar verfassen