2010-05-02 2 views
7

Ich bin mit Symfony 1.3.2 auf Ubuntu 9.10Symfony Formen: wie Standardwert für eine Textfeld-Widget einstellen

Ich mag den Standardwert eines Textfeld-Widget setzen, mit Daten froma adb lesen.

in der Vorlage Mein Code-Schnipsel sieht gefällt die:

<?php $form['notes']->render(); ?> 

Die API-Dokumentation zeigt nicht, wie dies zu tun - Wer weiß, wie dies zu tun?

+0

Haben Sie sich das angesehen? http://forum.symfony-project.org/index.php/m/64073/#msg_64073 –

+0

Ja, ich habe diesen Beitrag gesehen. Ich habe es ignoriert, weil es ein Hack ist ... Ich muss alle meine Widgets und Validatoren manuell neu implementieren, wenn ich von sfForm anstelle des Basisobjekts erben, was zu einem Wartungsalarm wird, wenn sich die zugrunde liegenden Modelleigenschaften ändern. – morpheous

Antwort

10

diese Weise können Sie in Ihrer Aktion oder die Formularklasse:

$this->form = new yourForm(); // If its in your action 

$text = // data for prepopulating field, from db or anywhere 

$this->form->setDefault('notes', $text); 

... oder wenn Sie haben mehrere Felder bekommen:

$this->form->setDefaults(array('notes' => $text, 'more_notes' => $more_text)); 

Oder wenn Sie es vorziehen, erklären nur einmal mit dem Widget in Ihrer Formularklasse Konfiguration (ich denke, das ist richtig):

$this->setWidgets(array(
    // widgets 
    'notes' => new sfWidgetFormTextArea(array('default' => $text)), 
    // widgets 
)); 
+0

Tom: Danke! das tat es (ich habe mit diesem Problem gekämpft) – morpheous

+0

Wie sollte man das selbe für ein einzelnes 'TextAreaType' Feld machen? – Trix