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
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…
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.