8.5 - Query Builder
Dizem que a vida é para quem sabe viver, mas ninguém nasce pronto. A vida é para quem é corajoso o suficiente para se arriscar e humilde o bastante para aprender.
Clarice Lispector
O Query Builder do ORM fornece uma interface fluente e simples de usar para criar e executar consultas. Ao compor consultas em conjunto, você pode criar consultas avançadas usando unions e subconsultas com facilidade.
Por "baixo dos panos", o Query Builder usa instruções prepare do PDO que protegem contra ataques de injeção de SQL.
A maneira mais fácil de criar um objeto Query é usar o método find () a partir de um objeto Table. Este método retornará uma consulta incompleta pronta para ser modificada. Você também pode usar o objeto de conexão de uma tabela para acessar o Query Builder de nível inferior que não inclui recursos de ORM, se necessário.
Quando em um controller podemos usar Articles ao invés de $articles
// Em ArticlesController.php
use Cake\ORM\TableRegistry;
$query = TableRegistry::getTableLocator()->get('Articles')->find();
foreach ($query as $article) {
print $article->id .'-'.$article->title.'<br>';
}
exit;
Veja pelo navegador
Sempre usar a linha abaixo em todos os exemplos
use Cake\ORM\TableRegistry;
$articles = TableRegistry::getTableLocator()->get('Articles');
$resultsIteratorObject = $articles
->find()
->where(['id >' => 1])
->order(['id ASC'])
->all();
foreach ($resultsIteratorObject as $article) {
print $article->id.'-'.$article->title.'<br>';
}
exit;
Veja no navegador
Outro
$articles = TableRegistry::getTableLocator()->get('Customers');
$resultsArray = $articles
->find()
->where(['id >' => 1])
->toList();
foreach ($resultsArray as $article) {
print $article->id.'-'.$article->name.'<br>';
}
//debug($resultsArray[0]->title);
exit;
Mais detalhes:
https://book.cakephp.org/3.0/en/orm/query-builder.html
Comments fornecido por CComment