CakePHP - Model::query() no controller ou view
Wednesday, 13 - 08 - 2008
Posted by Rafael Dx7 at 12:46
Cake for Marta, por Baranka, sob a licença Creative Commons
o método query() é muito prático por permitir executar qualquer comando SQL que vc quiser, de onde vc quiser.
então, vc pode, no controller, fazer assim:
$this->MyModel->query('SQL statement');
pela convenção do CakePHP, este é um jeito válido, pois o método é público. existem vários exemplos na internet utilizando este artifício. mas isso coloca no controller uma chamada ao banco de dados, o que viola o padrão MVC. e espero que vc nunca nem pense em colocar tal coisa na view.
essa é uma maneira 'errada', não limpa e pode zonear todo o seu projeto.
prefira colocar as consultas ao banco no seu Model, desta forma:
/* no model */
public function doSomething() {
return $this->query('SQL statement');
}
/* no controller */
$this->MyModel->doSomething();
assim seu código fica mais limpo, organizado, com uma leitura mais fácil e esta consulta pode ser utilizada em outras actions ou controllers.
Back
