Olá, estou querendo trazer para uma textfiel dados do banco de dados. Ex: Campo nome quando eu clicar na caixa, listar dados e auto completar de acordo com os dados do banco.
Olá, estou querendo trazer para uma textfiel dados do banco de dados. Ex: Campo nome quando eu clicar na caixa, listar dados e auto completar de acordo com os dados do banco.
Opa, manolo!
Acesse esse link: http://www.yiiframework.com/doc/api/1.1/CJuiAutoComplete/
Um exemplo:
No controlador: (não esquece de add no array de accessRules a ação)
public function actionGetCampoTabela() {
//personalize o filtro da sua maneira
$criteria = new CDbCriteria;
$criteria->select = 'campo';
$criteria->condition = 'campo like :s';
$criteria->params = array(':s' => '%' . $_GET['term'] . '%');
$criteria->limit = 5;
$models = Modelo::model()->findAll($criteria);
$array = array();
if ($models) {
foreach ($models as $model) {
$array[] = array(
'label' => $model->campo,
'value' => $model->campo,
);
}
}
// Saída em JSON
echo CJSON::encode($array);
}
No formulário:
<div class="row">
<?php echo $form->labelEx($model,'campo'); ?>
<?php
$this->widget('zii.widgets.jui.CJuiAutoComplete', array(
'model'=>$model,
'attribute'=>'campo',
'name'=>'Modelo[campo]',
'sourceUrl'=> $this->createUrl('controlador/getCampoTabela'),
// additional javascript options for the autocomplete plugin
'options'=>array(
'minLength'=>'1',
),
'htmlOptions'=>array('size'=>16,'maxlength'=>64),
));
?>
<?php echo $form->error($model,'campo'); ?>
</div>
Flw!
Vlw, Thiago Luis deu certinho.
Olá,
É possivel eu fazer um consulta no banco sem um modelo com o CDbCriteria ?
Eu tenho as condições, tenho a tabela no banco de dados, porém eu não quero que essa tabela tenha um modelo na minha apliação.
Obrigada,
Giovanna
Olá Giovanna!
Acredito que não, pelo menos o que está indicando na documentação do CDbCriteria é q ele trabalha diretamente com o ActiveRecord. Porém não estou fechando as portas para sua ideia, pois minha análise foi rápida, veja com outras pessoas sobre isso.
E caso não encontre uma solução, veja se vale a pena utilizar a classe CDbCriteria, e crie o modelo. Se não valer a pena, faça as operações sem modelo com CDbConnection.
Até mais.
Giovanna,
Você pode executar query SQL sem ter qualquer Model criado, usando o CDbConnection, mais para isso você precisar configurar a conexão do banco de dados no config/main.php, e depois executar os seguintes comandos:
$connection=Yii::app()->db;
$sqlStatement='SELECT * FROM clientes';
$command=$connection->createCommand($sqlStatement);
$command->execute(); // a non-query SQL statement execution
// or execute an SQL query and fetch the result set
$reader=$command->query();
// each $row is an array representing a row of data
foreach($reader as $row) ...
Referências:
Rodrigo, não fiz os testes aqui, mas estava dando uma lida e vendo aqui as classes e talvez seja possível, fazendo algo do tipo…
$connection = Yii::app()->getDb();
$criteria = new CDbCriteria();
$command = new CDbCommandBuilder();
$command->createCriteria($criteria);
$connection->createCommand($command);
CDbCommandBuilder