/** * @param string[] $datetimes */ public function setDatetimes($datetimes) { if (Arr::is_assoc($datetimes)) { $datetimes = array_map(function ($item) { return "'{$item}'"; }, $datetimes); } $this->set(self::DATETIMES, $datetimes); }
/** * @param array $filter_arr * @param QueryBuilder $query * @param string $column * @param boolean $having */ public function createNumberCondition($filter_arr, $query, $column, $having = false) { if (is_array($filter_arr) && count($filter_arr) > 0) { $expressions = array(); if (Arr::is_assoc($filter_arr)) { foreach ($filter_arr as $operator => $value) { switch ($operator) { case ">": $expressions[] = $query->expr()->gt($column, $value); break; case ">=": $expressions[] = $query->expr()->gte($column, $value); break; case "<": $expressions[] = $query->expr()->lt($column, $value); break; case "<=": $expressions[] = $query->expr()->lte($column, $value); break; case "=": $expressions[] = $query->expr()->eq($column, $value); break; } } } else { if (in_array(null, $filter_arr, true)) { $expressions[] = $query->expr()->orX($query->expr()->isNull($column), $query->expr()->in($column, $filter_arr)); } else { $expressions[] = $query->expr()->in($column, $filter_arr); } } foreach ($expressions as $expr) { if ($having) { $query->andHaving($expr); } else { $query->andWhere($expr); } } } }