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