好的,案例如下:
有一个表单有一些下拉菜单和多个选择字段。
现在一切都很好,除了我必须按属性类型搜索是和/或不仅或对于表格的其余部分(或至少我相信它是或其余部分)。
即属性类型 1 && 属性类型 2 && (子类型 1 || sybtype 2 || sybtype 3)
另一件事是,选择所有子类型时,所示的结果应与选择不相同。
我真的不知道在哪里阅读或查看有关此插件提供的有关“和”搜索的搜索功能的更详细教程。
我的模型中有以下内容:
public $filterArgs = array(
//array('name' => 'price', 'type' => 'query', 'method' => 'filterTitle'),
array('name' => 'province_id', 'type' => 'value'),
array('name' => 'city_id', 'type' => 'value'),
array('name' => 'quarter_id', 'type' => 'value'),
array('name' => 'refid', 'type' => 'value'),
array('name' => 'to', 'type' => 'value'),
array('name' => 'price1', 'name2' => 'price2', 'type' => 'expression', 'method' => 'priceRange', 'field' => 'Offer.price BETWEEN ? AND ?'),
array('name' => 'area1', 'name2' => 'area2', 'type' => 'expression', 'method' => 'areaRange', 'field' => 'Offer.area BETWEEN ? AND ?'),
array('name' => 'type_id', 'type' => 'query', 'method' => 'ManyOrConditions'),
array('name' => 'subtype_id', 'type' => 'query', 'method' => 'ManyOrConditions'),
array('name' => 'feature_id', 'type' => 'subquery', 'method' => 'findByTags1', 'field' => 'Offer.id'),
);
public function ManyOrConditions($data = array()) {
//debug($data);
$filter = $data['type_id'];
//not sure if this works
//$subtype = $data['subtype_id'];
$cond = array(
'OR' => array(
$this->alias . '.type_id ' => $filter,
//not sure if the below will work?
//$this->alias . '.subtype_id ' => $subtype
));
//debug($cond);
return $cond;
}
public function orConditions($data = array()) {
//debug($data);
$filter = $data['type_id'];
$cond = array(
'OR' => array(
$this->alias . '.type_id LIKE' => '%' . $filter . '%',
//$this->alias . '.body LIKE' => '%' . $filter . '%',
));
return $cond;
}
据我了解,它只为 type_id 创建“或”搜索......对不起,伙计们真的迷失了。
我是 cakephp 的新手,到目前为止,我已经能够阅读数千行代码并对这个系统进行大量更改,但是由于缺少关于这个插件的文档,我不知道该怎么做:(
我将不胜感激对教程和/或适当文档的任何指导——不是这个https://github.com/CakeDC/search。
如果这是正确的,请让我知道我缺少什么。
PS如果您在这里需要任何其他代码,请告诉我,我会提供。