CakePHP: Usar valores específicos en un elemento select
Posted by faemino | Filed under CakePHP
Sucede que en algún formulario de nuestras vistas podemos necesitar un elemento HTML select con unos valores que no se obtienen de una tabla de la Base de Datos (como sucede en los formularios de alta o modificación que crea cakePHP cuando existen relaciones belongsTo, por ejemplo) y queremos especificarlos nosotros mismos.
Una manera de conseguirlo es, en el controlador:
$dia = array('Lunes' => 'Lunes', 'Martes' => 'Martes', 'Miercoles' => 'Miercoles', 'Jueves' => 'Jueves', 'Viernes' =>'Viernes', 'Sábado' => 'Sábado', 'Domingo' => 'Domingo');
$this->set(compact('dia'));
Los keys del array $dia serán los values de los options del futuro select. Y el texto que se mostrá, será el value del array. Si el key no se especifica, los values de los options serán valores númericos correlativos empezando desde el 0.
Y en la vista:
echo $form->select('dia', $dia, null, null, false);
Resultado, obtenemos un desplegable con los días de la semana:
<select name="data[Zone][dia]" id="ZoneDia">
<option value="Lunes">Lunes</option>
<option value="Martes">Martes</option>
<option value="Miercoles">Miercoles</option>
<option value="Jueves">Jueves</option>
<option value="Viernes">Viernes</option>
<option value="Sábado">Sábado</option>
<option value="Domingo">Domingo</option>
</select>
Más información sobre FormHelper::select
Tags: controladores, vistas
April 16th, 2008 at 7:23 am
Hola, una pregunta para que es el compact en:
$this->set(compact(’dia’));
Saludos.
April 16th, 2008 at 7:25 am
Ya me di cuenta es para setear ams rapidamente, busca la variable con el mismo nombre y la setea. Es para eso no?
April 16th, 2008 at 7:37 am
Exáctamente
.
En la documentación de PHP hay una buena expliacación y unos cuantos ejemplos de uso. http://es2.php.net/manual/es/function.compact.php
Saludos.