Skip to content

coder-packages/laravel-scope-filtering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Scope filtering in Laravel

Add trait into models

use Larapackages\ScopeFiltering\Traits\Filterable;

class User
{
	use Filterable;
}

Create a Scope

namespace App\Filters;

use Illuminate\Database\Eloquent\Builder;
use Larapackages\ScopeFiltering\Scope;

class ContainsScope extends Scope
{
    protected $field;

    /** this is not required */
    public function __construct(string $field)
    {
        $this->field = $field;
    }

    public function filter(Builder $query, $value)
    {
        return $query->where($this->field, 'ilike', "%". mb_strtolower($value) . "%");
    }
}

Use in searches

use App\Filters\ContainsScope;

User::filterBy([
    'name' => ContainsScope // or 'name' => new ContainsScope('name')
])->get();

About

Scope filtering in Laravel

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages