Illuminate\Database\Eloquent\Builder::where PHP Method

where() public method

Add a basic where clause to the query.
public where ( string | Closure $column, string $operator = null, mixed $value = null, string $boolean = 'and' )
$column string | Closure
$operator string
$value mixed
$boolean string
    public function where($column, $operator = null, $value = null, $boolean = 'and')
    {
        if ($column instanceof Closure) {
            $query = $this->model->newQueryWithoutScopes();
            call_user_func($column, $query);
            $this->query->addNestedWhereQuery($query->getQuery(), $boolean);
        } else {
            call_user_func_array([$this->query, 'where'], func_get_args());
        }
        return $this;
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Apply filters in your QueryBuilder based in $fields
  *
  * @param \Illuminate\Database\Eloquent\Builder $queryBuilder
  * @param array $fields
  *
  */
 public function scopeSearch(Builder $queryBuilder, $fields = [])
 {
     if (isset($this->searchable)) {
         foreach ($fields as $field => $value) {
             if (array_key_exists($field, $this->searchable)) {
                 switch ($this->searchable[$field]) {
                     // compare equals values
                     case 'MATCH':
                         $queryBuilder->where($field, $value);
                         break;
                         // compare like values
                     // compare like values
                     case 'LIKE':
                         array_map(function ($value) use($queryBuilder, $field) {
                             $queryBuilder->where($field, "LIKE", "%" . $value . "%");
                         }, explode(" ", $value));
                         break;
                         // compare between values
                     // compare between values
                     case 'BETWEEN':
                         if (is_array($value) && count($value) == 2) {
                             if (isset($value[0]) && !empty($value[0])) {
                                 $queryBuilder->where($field, ">=", $value[0]);
                             }
                             if (isset($value[1]) && !empty($value[1])) {
                                 $queryBuilder->where($field, "<=", $value[1]);
                             }
                         }
                 }
             }
         }
     }
     return $queryBuilder;
 }
All Usage Examples Of Illuminate\Database\Eloquent\Builder::where