symfony: sfForm::setValue

Manchmal 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.

[php]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);
}
}[/php]