symfony: sfForm::setValue
20.02.2012Manchmal wäre es praktisch, nicht nur mit sfForm::setDefault den dem Benutzer in einem Formularfeld angezeigten Wert festzulegen, sondern den Formularinhalt nach erfolgter Abarbeitung von xyForm::configure noch abändern zu können. symfony bietet zwar die Möglichkeit, mit sfForm::getValue die Werte nach der Validierung abzufragen, gibt aber keinen Zugriff, um die Werte vor der Validierung noch zu ändern. Das mag in den meisten Fällen gewünscht sein - für die anderen Fälle hier eine Möglichkeit. Wenn man die Klasse BaseForm entsprechend anpasst, steht für alle Formulare die Methode sfForm::setValue zur Verfügung, die genauso wie sfForm::getValue angesprochen wird.
class BaseForm extends sfFormSymfony { public function setValue($widget, $value) { if (!isset($this->widgetSchema[$widget])) { throw new sfException('widget ' . $widget . ' not available'); } $this->widgetSchema[$widget]->setAttribute('value', $value); } }