Establecer el valor predeterminado de un elemento en Zend_Form por referencia desde el controlador
Frecuentes
Visto 16,480 veces
1
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.
1 Respuestas
6
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
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas php model-view-controller zend-framework zend-form or haz tu propia pregunta.
Gracias. Pensé que sería más complicado que simplemente pasar la variable literalmente. - RSM