0; } /** * Add a from stored procedure clause to the query builder. * * @param string $procedure * @param array $values * @return \Illuminate\Database\Query\Builder|static */ public function fromProcedure(string $procedure, array $values = []) { $compiledProcedure = $this->grammar->compileProcedure($this, $procedure, $values); // Remove any expressions from the values array, as they will have // already been evaluated by the grammar's parameterize() function. $values = array_filter($values, function($value) { return ! $this->grammar->isExpression($value); }); $this->fromRaw($compiledProcedure, array_values($values)); return $this; } public function where($column, $operator = NULL, $value = NULL, $boolean = 'and') { // detect is not search if (! str($operator)->contains('like', true)) { return parent::where($column, $operator, $value, $boolean); } // when is search covert to upper case column and value at database level $wrapped = $this->grammar->wrap($column); return $boolean === 'and' ? parent::whereRaw("UPPER($wrapped) LIKE UPPER(?)", [$value]) : parent::orWhereRaw("UPPER($wrapped) LIKE UPPER(?)", [$value]); } /** * Retrieve column values from rows represented as objects. * * @param array $queryResult * @param string $column * @param string $key * @return Collection */ protected function pluckFromObjectColumn($queryResult, $column, $key) { $results = []; foreach ($queryResult as $item) { if (is_null($key)) { foreach ($queryResult as $row) { $results[] = $row->$column; } } else { foreach ($queryResult as $row) { $results[$row->$key] = $row->$column; } } } return new Collection($results); } /** * Retrieve column values from rows represented as arrays. * * @param array $queryResult * @param string $column * @param string $key * @return Collection */ protected function pluckFromArrayColumn($queryResult, $column, $key) { $results = []; if (is_null($key)) { foreach ($queryResult as $row) { $results[] = $row[$column]; } } else { foreach ($queryResult as $row) { $results[$row[$key]] = $row[$column]; } } return new Collection($results); } }