Consultar no Banco

Boa tarde pessoal, andei olhando em vários lugares como fazer um DropDown ate que o Dropdown ta ok so que presciso de uma array para que ele funcione meu codigo esta desse jeito na view

<?php echo $form->label($model,‘username’); ?>

Aqui estou chamando uma função que criei no model user

<?php $user = User::model()->findAllUser();

    echo &#036;form-&gt;dropDownlist(&#036;model, 'id', &#036;user,


    array(





       'prompt'=&gt;'Selecione',


         )


       );

?>

<?php echo $form->error($model,‘username’); ?>

Minha função no model user

public function findAllUser()

{

  &#036;user = array('nome1','nome2');


  return &#036;user;

}

o meu dropdown ta gerando um <HTML> <SELECT> com nome1 e nome2, so que meu objetivo e buscar os nomes do usuarios no banco

deste ja agradeço

Dá uma olhada em listData.

cria uma funcao no seu modelo que gere uma lista com todos os seus usuarios, por exemplo:




public function getListaUsers(){

            return CHtml::listData(Users::model()->findAll(), 'id', 'nome');

        }



e depois coloque isso na sua view (_form.php em user ou outro lugar qq):




<?php echo CHtml::activeDropDownList($model, 'id_user', $model->getListaUsers(), array('prompt'=>'Selecione')); ?>



Valeu deu certo aqui um abraço

Boa tarde galera,

Será que alguem poderia explicar a função que o Leonardo Montenegro postou ?

obs: Fiz algumas alterações de acordo com a minha aplicação.




public function getListaUsers(){

    return CHtml::listData(User::model()->findAll(), 'username', 'password');

}



lendo a documentação eu descobri que




User::model()->findAll()



busca todos os registros e campos da tabela, só que ao fazer somente isso me deparei com um array de retorno com varias informacoes, e fazendo o código que o Leornado falou me retornou exatamente o que eu queria que nada mais é do que um array com os uses e suas pass do banco…

Para quem esta começando agora que nem eu, esse código me ajudou a fazer com que o login buscasse no banco os dados para a autenticação, pois quando você acaba de instalar o modelo de aplicação do yii, por mais que voce consiga criar os users, ao fazer login ele busca de um array "estatico" dentro da classe UserIdentity, isso para alguns pode parecer obvio mas eu levei um bocado de tempo para descobrir haeuheauehauea…

Abraços !

Aparentemente vc não tentou fazer o tutorial do blog. Lá esplica isso. Recomendo.

Se vc olhar a documentação das classes, a função activeDropDownList recebe como 3º atributo, um array. Mas não é o mesmo array retornado pelo findAll() do model.

O activeDropDownList recebe um array do formato abaixo:


array( 

   'valor2'=>'label2', 

   'valor2'=>'label2'

);

a função listData pega o array retornado pelo findAll() e transforma ele no formato apropriado do parâmentro recebido pelo activeDropDownList sem que seja necessário vc fazer isso.

Bom dia Daniel,

Cara valeu por explicar, depois eu olhei a documentaçao da classe CHtml e entendi…

Obrigado, Abraços !