Yii Framework Forum: Ver elementos en un combobox - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Ver elementos en un combobox Rate Topic: -----

#1 User is offline   migueArgentina 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 139
  • Joined: 09-March 11

Posted 16 April 2011 - 03:04 PM

Buenas...

Como siempre, al grano: Tengo una clase usuario y necesito colocar los usuarios que cumplen con una cierta condición, por ejemplo "if edad>20 ..." dentro de un combobox en un formulario para poder seleccionarlos y luego, al presionar "Aceptar" que tome el ID del usuario como dato.

No se si me explico pero es bien simple.

Gracias.
0

#2 User is offline   Jack Fiallos 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 256
  • Joined: 15-October 09
  • Location:Mexico

Posted 18 April 2011 - 12:25 PM

Una idea seria escribir un metodo en la clase usuarios por ej..

public function findMayoresDeEdad(int $edad)
{
  return Usuarios::model()->findAll(array(
    'condition'=>'t.edad >= :edad',
    'params'=>array(
      ':edad' => $edad,
    ),
  ));
}


Y luego donde necesitas el resultado, por ejemplo aqui en una vista 'create'.. esto en el controlador

public function actionCreate()
{
  // $model = .. 
  $Usuarios = Usuarios::model()->findMayoresDeEdad(20);
  $this->render('create',array(
    'model'=>$model,
    'usuarios'=>$Usuarios,
  ));
}


Y al final en la vista create, suponiendo que $model contiene una definicion para user_id

echo $form->dropDownList($model,'user_id',CHtml::listData($usuarios, 'user_id', 'username'));


Es un ejemplo rapido.. no se si realmente es lo que buscas
Celestic Dev Team
Yii Open Source Project Manager
0

#3 User is offline   migueArgentina 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 139
  • Joined: 09-March 11

Posted 20 April 2011 - 07:27 AM

Mil gracias! Lo pruebo y te comento.

Saludos
0

#4 User is offline   Antonio Ramirez 

  • Elite Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 1,448
  • Joined: 04-October 10

Posted 20 April 2011 - 02:34 PM

El Scope se puede realizar de la siguiente manera:
// creando el scope

public function whereAgeBiggerThan($age){
     $this->getDbCriteria()->addCondition('age >='.$age);

     return $this;
}



Luego en el dropdown

// desde el controlador pasamos la variable $model como siempre

// en dropdown:
$form->dropDownList($model,'user_id',CHtml::listData($model->whereAgeBiggerThan(20)->findAll(), 'user_id', 'username'));



Cheers
¿How long would it take for you to understand that you own nothing in this world?

www.ramirezcobos.com
www.2amigos.us
www.github.com/tonydspaniard
www.github.com/2amigos


Posted Image
0

#5 User is offline   migueArgentina 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 139
  • Joined: 09-March 11

Posted 20 April 2011 - 03:46 PM

Muchísimas gracias muchachos.

Logré solucionarlo colocando la función en el controlador y luego

<?php
echo $form->dropDownList($model,'id',CHtml::listData(user::model()->mayorEdad(x)->findAll(), 'id', 'name'));
?>


Saludos!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users