コード例 #1
0
 /**
  * @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);
 }
コード例 #2
0
 /**
  * @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);
             }
         }
     }
 }