我正在使用 CakeDC 搜索插件。我有一个简单的购物车,里面的产品都属于子类别。例如,食物的子类别可能是水果、蔬菜、肉类等,因此梨只属于水果类别。
所以我有一个包含所有类别的下拉列表,如果我选择父类别食物,则不会显示任何项目,如果我选择水果,则会显示水果。
我想要的行为是最初只显示父类别,所以食物、体育用品等,然后当他们选择食物时,我希望发生一些不同的事情:
1) 显示与该类别相关的所有产品以及所有子类别
2) 显示另一个包含水果、蔬菜、肉类等的下拉菜单,以便进一步过滤
3)如果这个子类别有子类别,也显示他们的孩子,直到过滤更多。
我现在的代码只允许我找到与某个类别的直接关联
这是我的模型 Product.php 中的代码
public $actsAs = array('Search.Searchable');
public $filterArgs = array(
array('name' => 'cid', 'field' => 'category_id', 'type' => 'value', 'method' => 'query', 'method' => 'query', 'allowEmpty' => true);
public function filterCat($data, $field = null) {
if (empty($data['cid'])) {
return array();
}
$cat = $data['cid'];
return array(
'OR' => array(
$this->alias . '.category_id' => $cat,
));
}
我已经到处寻找解决方案,我认为这很简单,但没有找到任何东西。非常感谢任何帮助!