request->__get('class_key'); if ($class_key !== null) { foreach ($class_key as $key => $value) { if (isset($search[$key])) { foreach ($value as $v) { // 遍历class_key的值,添加到search数组中 array_push($search[$key], $v); // 添加class_key的搜索条件 } } else { $search[$key] = [$value[0]]; // 创建新的搜索条件 } } } $class_value = $this->request->__get('class_value'); // 获取class_value的值 if ($class_value !== null) { $this->params = array_merge($this->params, $class_value); } foreach ($search as $whereType => $whereFields) { switch ($whereType) { case '=': case '<>': case '>': case '>=': case '<': case '<=': case 'in': foreach ($whereFields as $whereField) { $paramsName = substr_symbol_behind($whereField); if (!isset($this->params[$paramsName]) || $this->params[$paramsName] == '') { continue; } $where[] = [$whereField, $whereType, $this->params[$paramsName]]; } break; case '%pipe_like%': foreach ($whereFields as $k=>$whereField) { $paramsName = substr_symbol_behind($whereField); if (!isset($this->params[$k]) || empty($this->params[$k])) { continue; } $where[] = [$whereField, 'like', '%' . $this->params[$k] . '%']; } break; case '%like%': foreach ($whereFields as $whereField) { $paramsName = substr_symbol_behind($whereField); if (!isset($this->params[$paramsName]) || empty($this->params[$paramsName])) { continue; } $where[] = [$whereField, 'like', '%' . $this->params[$paramsName] . '%']; } break; case '%like': foreach ($whereFields as $whereField) { $paramsName = substr_symbol_behind($whereField); if (!isset($this->params[$paramsName]) || empty($this->params[$paramsName])) { continue; } $where[] = [$whereField, 'like', '%' . $this->params[$paramsName]]; } break; case 'like%': foreach ($whereFields as $whereField) { $paramsName = substr_symbol_behind($whereField); if (!isset($this->params[$paramsName]) || empty($this->params[$paramsName])) { continue; } $where[] = [$whereField, 'like', $this->params[$paramsName]]; } break; case 'between_time': if (!is_numeric($this->startTime) || !is_numeric($this->endTime)) { break; } $where[] = [$whereFields, 'between', [$this->startTime, $this->endTime]]; break; case 'between': if (empty($this->start) || empty($this->end)) { break; } $where[] = [$whereFields, 'between', [$this->start, $this->end]]; break; case 'find_in_set': // find_in_set查询 foreach ($whereFields as $whereField) { $paramsName = substr_symbol_behind($whereField); if (!isset($this->params[$paramsName]) || $this->params[$paramsName] == '') { continue; } $where[] = [$whereField, 'find in set', $this->params[$paramsName]]; } break; } } return $where; } }