public function query($query_restrict, $extend) { $rule = $this->valid_query_string($query_restrict); if (empty($rule)) { return new \Illuminate\Database\Eloquent\Collection(); } if (isset($extend['now'])) { $this->course = $this->course->where('time1', '!=', ''); } foreach ($rule as $key => $value_array) { $column = $this->rule_mapping[$key]; $this->course = $this->course->where(function ($query) use($column, $value_array) { if ($column == 'course_department' || $column == 'time1' || $column == 'time2' || $column == 'place') { foreach ($value_array as $value) { $query->orWhere($column, 'like', '%' . $value . '%'); } } else { $query->whereIn($column, $value_array); } }); } return $this->course->get(); }