Arrays im Fluid Template zusammenbauen

  • Halion Halion
    Sternenflotten-Admiral
    0 x
    165 Beiträge
    1 Hilfreiche Beiträge
    15. 07. 2013, 13:46

    Hallo Community,

    ich würde gerne einen Filter in Form mehrerer Select-Felder für eine Listview und deren Einträge bauen.
    Alle Filter Werte sind Attribute der Objekte die in der Listview dargestellt werden.

    Nun dachte ich das ich ein/mehrere Array(s) mit den Werten/Attribute der einzelnen Objekte befülle, allerdings darf der Wert nur einmal vorkommen, und diese dann als option value der jeweiligen Select Listen zuweise.

    Ist das sinnvoll? Wenn ja, wie generiere ich ein solches Array im View?

    Wäre echt Super wenn mir jemand helfen könnte!

    Gruß
    Halion


  • 1
  • 0 x
    9 Beiträge
    0 Hilfreiche Beiträge
    16. 07. 2013, 07:47

    Hi,

    ich habe mir dafür immer einen OptionService gebastelt und das entsprechende Array dann dem View zugewiesen. Bei mehr als einer Select-Box kannst Du auch ein großes Array mit den Select-Box-Arrays in 2. Ebene erstellen, dann musst Du nicht so viel Variablen dem View zuweisen.

    1. class SelectBoxOptionService {
    2. public function getOptions(){
    3. return array(
    4. 'filterOne' => $this->getOptionsForFilterOne();
    5. 'filterTwo' => $this->getOptionsForFilterTwo();
    6. );
    7. }
    8.  
    9. private function getOptionsForFilterOne() {
    10. ...

    [b]Controller[/b]

    1. $this->view->assign('selectBoxOptions', $this->selectBoxOptionService->getOptions());

    [b]View[/b]

    1. <f:form.select options="{selectBoxOptions.filterOne}" ... />

    Für weitere (eventuell sauberere) Vorschläge hab ich immer ein offenes Ohr bzw Auge :D

  • 1