2010-05-02 6 views
7

J'utilise Symfony 1.3.2 sur Ubuntu 9.10formes Symfony: comment définir la valeur par défaut pour un widget textarea

Je veux définir la valeur par défaut d'un widget textarea, avec des données lues adb froma.

Mon bout de code dans le modèle ressemble aime ça:

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

Les API docs DonT montrer comment faire - personne ne sait comment faire cela?

+0

Avez-vous regardé ce produit? http://forum.symfony-project.org/index.php/m/64073/#msg_64073 –

+0

Oui, j'ai vu ce message. Je l'ai ignoré parce que c'est un hack ... Je vais devoir manuellement réimplémenter tous mes widgets et validateurs si j'hérite de sfForm au lieu de l'objet de base, ce qui devient un cauchemar de maintenance si les propriétés du modèle sous-jacent changent. – morpheous

Répondre

10

Vous pouvez l'utiliser dans votre action ou la classe de formulaire:

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

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

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

... ou si vous avez plusieurs champs:

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

Ou si vous préférez déclarer juste une fois avec le widget dans votre configuration de classe de formulaire (je pense que c'est juste):

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

Tom: Merci! cela a fait (j'ai lutté avec ce problème) – morpheous

+0

Comment devrait-on faire la même chose pour un seul champ 'TextareaType'? – Trix

Questions connexes