Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos do iMasters,
estou quase o dia todo tentando montar uma query na paginação, mas ta osso, não consegui fazê-la funcionar até agora.
Quer dizer, uma parte so q nao consegui.
A parte q esto precisando de ajuda é a seguinte:
São tres tabelas comuns: produtos, precos, tipos_de_clientes
e uma tabelas de relacionamento: precos_tipos_de_clientes
A lógica dos models:
a questão é a seguinte:
Preciso selecionar todos os preços do produtos que tiverem o tipo de cliente (na tabela de relacionamento) igual a 1 (por exemplo) ou NULL.
Tentei fazer isso com join (como já estou usando com outras tabelas nessa mesma query), pesso ajuda concluir essa query.
Abaixo vou postar como está até agora (nao vou postar como coloquei a query de preços e tipos_de_cliente pq tudo q tentei deu errado, nao tenho nem ideia de como fazer)
$this->Produto->recursive = -1;
$this->paginate = array('Produto' => array(
'limit' => 12,
'joins' => array(
array(
'table' => 'produtos_tags',
'alias' => 'ProdutosTag',
'type' => 'inner',
'conditions' => array(
'ProdutosTag.tag_id = 55'
)
),
array(
'table' => 'fotos_produtos',
'alias' => 'FotosProduto',
'type' => 'inner',
'conditions' => array(
'FotosProduto.produto_id = Produto.id'
)
),
array(
'table' => 'fotos',
'alias' => 'Foto',
'type' => 'inner',
'conditions' => array(
'Foto.id = FotosProduto.foto_id'
)
),
array(
'table' => 'urls',
'alias' => 'Url',
'type' => 'inner',
'conditions' => array(
'Url.foreign_key = Produto.id AND Url.model = \'Produto\''
)
),
array(
'table' => 'produtos_tipos_de_clientes',
'alias' => 'ProdutosTiposDeCliente',
'type' => 'inner',
'conditions' => array(
'ProdutosTiposDeCliente.produto_id = Produto.id AND (ProdutosTiposDeCliente.tipos_de_cliente_id = 1 OR ProdutosTiposDeCliente.tipos_de_cliente_id IS NULL)'
)
),
array(
'table' => 'precos',
'alias' => 'Preco',
'type' => 'inner',
'conditions' => array(
'Preco.produto_id = ProdutosTag.produto_id'
)
)
),
'conditions' => 'Produto.id = ProdutosTag.produto_id AND Produto.visivel = 1',
'order' => 'Produto.id ASC',
'fields' => array('Produto.id', 'Produto.title', 'Foto.arquivo', 'Url.url', 'Preco.valor', 'Preco.promocional')
)Carregando comentários...