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.

comments to @rafaeldx7 on Twitter
Back