TYPO3: Fluid Checkbox/Radio: „No value found for key“

Ich habe meine erste Extbase/Fluid-Seite mittlerweile online und bin gerade wieder über ein Problem gestolpert, welches mir während der Entwicklung schwer zu schaffen gemacht hat und beharrlich in einer „No value found for key“ Exception endete. Der Workaround war dann aber letztlich ganz einfach.

Beim ersten Aufruf eines Formulars war das damit verknüpfte Objekt noch nicht vorhanden. Das ist eigentlich kein Problem: Alle Felder werden mit ihren Startwerten ausgegeben, in der Regel also leer. Nicht so Radio- und Checkbox-Inputs. Wie hier nachzulesen ist, gibt es einen Bug in den entsprechenden Fluid ViewHelpers. Diese gehen einfach stur davon aus, dass das Formular-Objekt bereits vorhanden ist. Die Helper greifen einfach auf das nicht existente Objekt zu und schon vergeude ich Stunden bei der Fehlersuche.

Meine „Lösung“ des Problems war es dann letztlich das verlangte zu liefern. Also beim Aufruf des Formulars testen ob das Objekt zum Formular übergeben wurde und es einfach zu erzeugen, wenn dem nicht so ist. Das sieht im Controller dann z.B. so aus:

  /**
   * @param Tx_Calendar_Domain_Model_FormObject_Ticketorder $ticketorder  A Ticketorder Form object
   * @dontvalidate $ticketorder
   */
  public function formAction(Tx_Calendar_Domain_Model_FormObject_Ticketorder $ticketorder = null) 
  {
    if(!$ticketorder) {
      $ticketorder = new Tx_Calendar_Domain_Model_FormObject_Ticketorder(); 
    }
 
    $this->view->assign('ticketorder', $ticketorder);
  }

Alternativ gibt es hier auch einen Patch für den Bug. Bei mir funktionieren die Formulare in jedem Fall anstandslos.