Fazer consulta no banco de dados ?

Pessoal, estou iniciando meus estudos no Yii e estou com algumas duvidas!

Segui os exemplos que tem aqui, no final é criada uma pagina que faz uma busca por um id especifico.

Agora quero fazer nessa pagina uma busca onde o sistema traz todos os dados de uma determinada tabela com a consulta ‘SELECT * FROM tbl_message’ e não estou conseguindo.

Como posso fazer ? Quais são os comandos ?

Obrigado!

para fazer essa query em específico faz assim:

no controller

$model= ModelName::model()->findAll();

depois vc usa um foreach no view para captar os dados: $data = array();

foreach($model as $d){

$data[] = $d->attributtes;

}

estou respondendo via celular então não testei o código mas é por aí .

Boa! Funciono!

Agora vo tenta implementa uma consulta com where, limit, order by e essas coisas!

Se eu não consegui volto aqui no forum!

Valeu!

Da uma olhada aqui parceiro:

http://www.yiiframework.com/doc/guide/1.1/en/database.ar

sempre me ajuda… hehe

Mas antes de usar o DAO (Database Access Objects) tente pelo CDbCriteria, ACHO que é mais de acordo com os padrões do Yii, particularmente uso o DAO somente em queries mais complexas com multiplas tabelas, multiplos selects, etc.


$criteria=new CDbCriteria;

dá uma pesquisada que tem muita coisa sobre o CDbCriteria. É muito útil para fazer paginação por exemplo (aplicação em widgets). Pelo Dao faz também, mas é mais fácil quando se usa o CDbCriteria. Eu ACHO.

Pois é, vi um exemplo usando isso e me parece que ele é mais viavel para fazer consultas complexas!

Dai para testar fiz esse teste:




$criteria = new CDbCriteria();

		

$criteria->select = "content, id";

		

$message= Message::model()->findAll($criteria);



Tentei colocar um alias no nome da coluna e não consegui.

Tentei assim:




$criteria = new CDbCriteria();

		

$criteria->select = "content as conteudo";

		

$message= Message::model()->findAll($criteria);



Dava um monte de erro, dai desisti!

Ta certo a forma que fiz o alias na coluna ou é de outra forma ?!

Obrigado!

quando vc usa "content as conteudo" ele necessita uma propriedade "conteudo" no seu model pra preencher o valor com o retorno do select

pra funcionar, apenas defina no seu model


public $conteudo;

Tenta alguma coisa assim:


$criteria = new CDbCriteria();

       $criteria->condition = 'content = :content';

       $criteria->order = 'id DESC';

       $criteria->params = array (':content'=>'alguma coisa aqui');


       $model = NomeModelo::model()->findAll($criteria);