Si los datos los vas a obtener desde una tabla, lo correcto seria añadir en el modelo correspondiente esa funcionalidad.(si la lista la has de creara mano, sigue este comentario)
Supongamos que tengo una tabla de grupos de usuarios. La primera solución seria como siempre resolver en el propio modelo de esta tabla algo como esto:
public function getGrupos($id=0)
{
$criteria=new CDbCriteria();
$criteria->select='id_grupo,Descripcion_Grupo'; //solo quiero estos dos campos
$criteria->order='ordenPresentacion'; //para que aparezcan clasificados
$criteria->addCondition('id_idioma=1'); //solo los que sean del idioma 1
if ($id>0)
$criteria->addCondition('id_grupo='.$id); //Si me indican id //busco uno
$aGrupos=$this->findAll($criteria); //lanzo el query
$grupos=array();
foreach ($aGrupos as $p)
$grupos($p->id_grupo)= $p->Descripcion_Grupo; //monto array
return $grupos;
}
Con esto, conseguimos un array de id-> descripción desde la tabla; la ventaja de este método es la precisión con la que podemos escoger y ordenar nuestra lista, en el formulario nos bastara con:
<?php echo $form->dropDownList($model,'id_grupo',$model->getGrupos()); ?>
Cuando no existan complicaciones de selección podemos simplificar el sistema, modificando solo el form con estas lineas:
<?php echo $form->dropDownList($model,
'id_grupo',
CHtml::listData(CnArticuloGrupo::model()->findAll(), 'id_grupo', 'Descripcion_Grupo')
);?>
Bibliografia:
http://www.yiiframework.com/doc/api/1.1/CDbCriteria
http://yiitutorials.net/easy/yii-getting-info-from-the-database
Comparte esto:
- Haz clic para compartir en Facebook (Se abre en una ventana nueva) Facebook
- Haz clic para compartir en Telegram (Se abre en una ventana nueva) Telegram
- Haz clic para compartir en WhatsApp (Se abre en una ventana nueva) WhatsApp
- Haz clic para compartir en LinkedIn (Se abre en una ventana nueva) LinkedIn
- Haz clic para compartir en X (Se abre en una ventana nueva) X
- Haz clic para enviar un enlace por correo electrónico a un amigo (Se abre en una ventana nueva) Correo electrónico
- Más
- Haz clic para compartir en Pinterest (Se abre en una ventana nueva) Pinterest
- Haz clic para imprimir (Se abre en una ventana nueva) Imprimir
- Haz clic para compartir en Pocket (Se abre en una ventana nueva) Pocket
- Haz clic para compartir en Reddit (Se abre en una ventana nueva) Reddit
- Haz clic para compartir en Tumblr (Se abre en una ventana nueva) Tumblr
- Haz clic para compartir en Mastodon (Se abre en una ventana nueva) Mastodon
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.
4 comentarios
gracias me sirvio tu ejemplo se agradece
saludos
gracias me sirvio tu ejemplo se agradece
saludos