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
- Cargamos los datos con CHtml::listData.
- Usamos el método DropDownList del objeto ActiveForm.
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.
muy bueno el ejemplo ya estoy mas claro de como trabajar en yii, gracias
ResponderEliminarGracias, Jesuxo. La idea es ir publicando más escenarios de uso común en este blog.
ResponderEliminarSi tienes cualquier sugerencia, no dudes en hacemelo saber.
Un saludo.