/** * between, 两端开区间 * @param $attribute * @param null $min * @param null $max * @return static */ public function whereBetween($attribute, $min, $max) { if ($min > $max) { return $this->whereEquals(0, 1); } $this->original->whereBetween($attribute, [$min, $max]); return $this; }
/** * like wheres function ,call by internal * @param array $conds * @return $this */ protected function _wheres($conds) { foreach ($conds as $field => $opAndVal) { if (is_null($opAndVal)) { $opAndVal = [null]; } $opAndVal = (array) $opAndVal; $op = strtolower(count($opAndVal) == 1 ? '=' : $opAndVal[0]); $val = last($opAndVal); $field = str_contains($field, '.') ? $field : $this->table . '.' . $field; switch ($op) { case 'in': if (count($val) == 1) { $this->operator->where($field, '=', $val[0]); } else { $this->operator->whereIn($field, $val); } break; case 'between': $this->operator->whereBetween($field, $val); break; case 'raw': $this->operator->whereRaw($val); break; default: $this->operator->where($field, $op, $val); } } return $this; }
/** * Add a where between statement to the query. * * @param string $column * @param array $values * @param string $boolean * @param bool $not * @return $this * @static */ public static function whereBetween($column, $values, $boolean = 'and', $not = false) { return \Illuminate\Database\Query\Builder::whereBetween($column, $values, $boolean, $not); }
public function whereBetween($column, array $values, $boolean = 'and', $not = false) { $column = is_string($column) ? snake_case($column) : $column; return parent::whereBetween($column, $values, $boolean, $not); // TODO: Change the autogenerated stub }