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.

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); 
  } 
}

You may also like...