0
我有以下型号:属性和特性CakePHP - 使用HABTM的多个过滤器
他们有一个HABTM关系。
我想建立一个查询,可以采取characteristic_ids任意数量和搜索具有特征X与特征Y和特点ž等
此刻,我只能管理一个IN特性(),它是上面使用OR的等价物。
即使是原始SQL如何执行此操作的指针也会很有用,因为我可以将它转换为CakePHP查找。
我有以下型号:属性和特性CakePHP - 使用HABTM的多个过滤器
他们有一个HABTM关系。
我想建立一个查询,可以采取characteristic_ids任意数量和搜索具有特征X与特征Y和特点ž等
此刻,我只能管理一个IN特性(),它是上面使用OR的等价物。
即使是原始SQL如何执行此操作的指针也会很有用,因为我可以将它转换为CakePHP查找。
您可能希望创建属性模型内部下面的方法:
function getProperties($characteristicsIDs) {
$ids = $this->characteristicsProperty->find('list', array(
'fields' => array('property_id', 'property_id'),
'conditions' => array('characteristic_id' => $characteristicsIDs),
'group' => 'property_id having count(*) = '.count($characteristicsIDs),
));
$ids = array_keys($ids);
return $ids;
}
你控制器内部
然后:
$ids = $this->Property->getProperties($propertiesIDs);
$this->Property->find('all', array(
'conditions' => array(
'Property.id' => $ids
)
));
对我的作品。谢谢。 – timstermatic 2012-03-30 10:53:34
@wiseguysonly然后你可以验证答案。 – 2012-03-31 00:33:12
好的。欢呼的微调! – timstermatic 2012-05-23 10:22:39