Herramientas de usuario

Herramientas del sitio


cursos:yii:views:form

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 <div class=endrow></div> para terminar la linea

Campos de fecha con selector de calendario

Utilizamos el widget CJuiDatePicker. Con el parámetro options podemos hacer ajustes de visualización o de filtro (Ver CJuiDataPicker)

$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
        ),
));