Freitag, 24. Februar 2012

Fluid Checkbox Bug (No value found for key “Tx_Fluid_ViewHelpers_FormViewHelper->formObject”)

Bei der Fluid Programmierung sind wir auf ein großes Problem gestoßen.
Unser Formular sollte eine Checkbox beinhalten, jedoch bekamen wir statt der Checkbox das zu sehen:
"No value found for key “Tx_Fluid_ViewHelpers_FormViewHelper->formObject”
Nach etwas rumprobieren und ein bischen Googlen wussten wir:
http://forge.typo3.org/issues/show/5636 :
Form_RadioViewHelper and CheckBoxViewHelper miss check for existing object before it is accessed.
Ok das Problem lässt sich mit einem "einfachen Holzhammer" fix beheben:
//anmeldung ist in diesem Beispiel das übergebene Objekt
if(is_object($anmeldung)) {
//Impressum ist hier die Checkbox um die es geht
     if($anmeldung->getImpressum() != '') {
             $anmeldung->setImpressum(TRUE);
      } else {
              $anmeldung->setImpressum(FALSE);
      };
} else {
      $anmeldung = new Tx_Adebisevents_Domain_Model_Anmeldung;
}

Kurze Erklärung:
  • Die Überprüfung ob es ein Objekt ist, dient dafür dem Vorhergehenden Bug entgegen zu wirken. Dieser wird nur ausgelöst wenn die Variable noch kein Objekt ist.
  • Die Überprüfung ob in der Checkbox etwas drinnen steht, beugt einem anderen Bug vor. Denn Flow3 macht aus den Boolean-Werten Strings und produziert dadurch einen Fehler.

via: anendo.com