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í .
alexFidelis:
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!
aguinelo
(Aguinelo)
November 23, 2011, 1:30pm
4
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.
alexFidelis:
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!
gusnips
(Gustavo)
November 24, 2011, 12:11pm
7
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;
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!
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);