2010-05-02 13 views
7

estoy usando Symfony 1.3.2 en Ubuntu 9.10formas Symfony: Cómo establecer el valor predeterminado para un widget de área de texto

que quieren establecer el valor predeterminado de un widget de área de texto, la lectura de datos ADB froma.

Mi fragmento de código en la plantilla mira gustos esto:

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

Los documentos de la API dont mostrar cómo hacer esto - ¿alguien sabe cómo hacer esto?

+0

¿Mirar esto? http://forum.symfony-project.org/index.php/m/64073/#msg_64073 –

+0

Sí, vi esa publicación. Lo ignoré porque es un truco ... Tendré que volver a implementar manualmente todos mis widgets y validadores si heredo de sfForm en lugar del objeto base, lo que se convierte en una pesadilla de mantenimiento si cambian las propiedades del modelo subyacente. – morpheous

Respuesta

10

Puede utilizar esto en su acción o la clase formulario:

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

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

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

... o si usted tiene múltiples campos:

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

o si lo prefiere declarar sólo una vez con el widget en su configuración de clase de formulario (creo que esto es correcto):

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

Tom: ¡Gracias! que lo hizo (he luchado con este problema) – morpheous

+0

¿Cómo se debe hacer lo mismo para un solo campo 'TextareaType'? – Trix

Cuestiones relacionadas