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