Establecer el valor predeterminado de un elemento en Zend_Form por referencia desde el controlador

A través de la línea de comando configuré un nuevo formulario llamado BookSlot:

zf create form BookSlot

Lo que la mayoría de ustedes sabrá, crea un directorio de formularios en el directorio de la aplicación del marco Zend.

En el método init del formulario, agregué un elemento de texto llamado tiempo y le asigné la etiqueta 'tiempo':

$time = new Zend_Form_Element_Text('time');
$this->addElement($time);
$time->setLabel('Time');

Necesito que tenga un valor predeterminado que el usuario no pueda cambiar, así que agrego:

$time->setValue($value);

En mi controlador, creo una función para obtener el formulario de ranura de libro anterior:

public function getBookSlotForm(){
        return new Application_Form_BookSlot();
    }

También tengo una acción de ranura de libro en mi controlador de índice.

Asigno el formulario a una variable y lo hago transitable a la vista en la acción de la ranura del libro:

$form = $this->getBookSlotForm();
    $this->view->form = $form;

En la misma acción de la ranura del libro, tengo una variable de identificación que se genera dinámicamente, pero para esto suponga que es 5:

$id = 5;

¿Cómo obtengo el valor de $id ser el valor por defecto de $time en mi formulario de ranura de libro arriba? Además, quiero hacerlo para que el usuario no pueda cambiar este valor.

preguntado el 03 de mayo de 12 a las 15:05

1 Respuestas

Para que el usuario no pueda cambiar el valor, use el atributo readOnly. En tu clase de formulario

$time->setAttrib('readonly', 'readonly');

Para asignar su id como el valor predeterminado de su campo de tiempo, en su acción

$form->time->setValue($id);

contestado el 03 de mayo de 12 a las 15:05

Gracias. Pensé que sería más complicado que simplemente pasar la variable literalmente. - RSM

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.