As perguntas mais comuns é como faço para restringir a quantidade de colunas que traz na minha busca de uma tabela específica.
Exemplo de Tabelas:
Pagina – id, nome, data_cadastro
Promocao – id, id_pagina, nome, valor, data_cadastro
PromocaoConteudo – id, id_promocao, conteudo, data_cadastro
Então quando buscar a promoção teremos:
belongsTo = ‘Pagina’;
hasMany = ‘PromocaoConteudo’;
Estes exemplos abaixo, imaginamos que as tabelas já estão vinculadas na Model.
Trazendo tudo de tudo:
$promocoes = $this->Promocao->find(‘all’);
Vamos imaginar que queira somente algumas colunas de cada tabela que esteja vinculada a Promoção.
$this->Promocao->bindModel(array(‘hasMany’=>array(‘PromocaoConteudo’=>array(‘fields’=>array(‘PromocaoConteudo.conteudo’)))));
$promocoes = $this->Promocao->find(‘all’, array(‘fields’=>array(‘Promocao.nome’,’Promocao.valor’,’Pagina.nome’)));
Veja que quando é um BelongsTo é possível colocar nos fields do próprio find da promoção, mas quando é um HasMany, é necessário colocar com o bind como se fosse fazer o vínculo novamente.