===== Formularios: CActiveForm =====
==== Desplegables: Atributos con un conjunto de valores permitidos ====
Cuando un atributo solo admite un conjunto de valores, lo típico será mostrar un desplegable. En el caso de atributos con valores fijos (ver estado en Crear/configruar Modelos), utilizaremos como opciones la propiedad ATRIBUTOOptions:
echo $form->dropDownList($model,"estado",$model->estadoOptions,array('empty'=>'Seleccione...'));
==== Atributos relacionados con otro modelo ====
Si tenemos un atributo cuyos valores están relacionados con otro modelo mediante una relación BELONGS_TO, lo típico será mostrar un desplegable con los valores posibles. Para ello, cargaremos los valores con findAll(), que devuelve un array de objetos, y lo convertiremos a un array clave=>descripción mediante la función CHtml::listData(), que es lo que necesita el input dropdownList
$options=CHtml::listData(Usuarios::model()->findAll(),'id','nombre');
echo $form->dropDownList($model,"usuarios_id",$options,array('empty'=>'Seleccione...'));
==== Cómo hacer un formulario con varios campos en una misma línea ====
Incluir en main.css:
div.form .beginrow { float:left; padding-right:10px; }
div.form .col { padding-right:10px; float:left; }
div.form .endrow {clear: left; }
En la vista, utilizar class=beginrow para el primer campo de la fila, class=col para el resto y añadir
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model'=>$model,
'attribute'=>'fecha_envio',
'options'=>array(
'dateFormat'=>'dd/mm/yy',
'minDate'=>'+1d', //La fecha ha de ser como mínimo mañana
),
));