private function smoothnessWhere($query, $condition) { $condition = $this->getSmoothnessCondition($condition); $current_values = $current_has_values = $has_keys = []; $default_flag = true; foreach ($this->smoothness['columns'] as $key => $column) { $value = Request::get($key); $current_values[$key] = $value; if (Request::exists($key)) { $default_flag = false; if (!Request::has($key)) { continue; } $current_has_values[$key] = $value; $has_keys[] = $key; if (strpos($column, 'scope::') === 0) { $method = camel_case(str_replace('::', '_', $column)); if (method_exists($this, $method)) { $this->{$method}($query, $value, $condition); } else { throw new \Exception('Method ' . $method . '() Not Found.'); } } else { $where = $condition == 'or' ? 'orWhere' : 'where'; $query->{$where}($column, 'LIKE', '%' . $value . '%'); } } } if (!$default_flag && strlen(implode('', $current_values)) == 0) { $query->whereRaw('1 <> 1'); } $appends = array_merge($current_values, ['condition' => $condition]); $results = new \stdClass(); $results->values = Collection::make($current_values); $results->has_values = Collection::make($current_has_values); $results->labels = $this->getSmoothnessLabels(); $results->has_keys = $has_keys; $results->appends = $appends; $results->condition = $condition; $results->conditions = $this->getSmoothnessConditions($condition); View::Share('smoothness', $results); }