akr4m / scoping
This scopes allow you to add constraints to all queries for a given model. Filter your data easily.
Installs: 99
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/akr4m/scoping
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2025-09-26 05:47:28 UTC
README
This scopes allow you to add constraints to all queries for a given model. Filter your data easily.
Installation
Simply add the package to your composer.json file and run composer update.
composer require akr4m/scoping
Usage
Add the trait to your model and your search rules.
use akr4m\scoping\Traits\CanBeScoped; class Post extends Model { use CanBeScoped; }
Add scopes in abcController.php like this
public function __invoke(Request $request) { $posts = App\Post::withScopes($this->scopes())->get(); } protected function scopes() { return [ // Must declare the `Scope` files 'topic' => new TopicScope(), 'month' => new MonthScope(), 'year' => new YearScope(), ]; }
TopicScope.php file would be like this
use akr4m\scoping\Scoping\Contracts\Scope; use Illuminate\Database\Eloquent\Builder; class TopicScope implements Scope { public function apply(Builder $builder, $value) { return $builder ->whereHas('topics', function ($builder) use ($topic) { $builder->where('slug', $value); }); } }