$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])) { continue; } $paramVal = $this->params[$paramsName]; // 勿用 == '':PHP 中 0 == '' 为 true,会误跳过 prescription_audit_status=0 等合法筛选 if ($paramVal === '' || $paramVal === null) { continue; } $where[] = [$whereField, $whereType, $paramVal]; } 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])) { continue; } $paramVal = $this->params[$paramsName]; if ($paramVal === '' || $paramVal === null) { continue; } $where[] = [$whereField, 'find in set', $paramVal]; } break; } } return $where; } }