viernes, 29 de julio de 2011

Yii Framework: Creacion de combo desplegable

Explico la creación de una combo desplegable para un formulario sencillo con Yii Framework.


El escenario


Necesitamos llenar un desplegable de un formuario de introducción ó actualización de datos con datos de un modelo. En este escenario consideramos que los datos del modelo a obtener son distintos del modelo para el que estamos obteniendo los datos. 
Pasos de la solución
 Ejemplo




<?php 
 $estadosArray = CHtml::listData(Estado::model()->findAll(),'id','estado');
 echo $form->DropDownList($model,'estado',$estadosArray);
?>


En el ejemplo usamos Estado::model() para acceder al modelo y llamamos a la función que obtiene los datos de la base de datos. En nuestro caso findAll(), y después hay que especificar el nombre del campo clave, y del campo del modelo que se va a mostrar en el desplegable. 

Una vez hecho esto, a la hora de construir el DropDownList, debemos especificar el modelo actual, y el campo del modelo al que se asocia el resultado de lo que haya elegido en el campo desplegable.