PHPackages                             masoudi/laravel-sieve - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. masoudi/laravel-sieve

ActiveLibrary

masoudi/laravel-sieve
=====================

A Laravel package to create better query filters

0.3(3y ago)831MITPHP

Since Jul 14Pushed 3y ago1 watchersCompare

[ Source](https://github.com/rezamasoudi/sieve)[ Packagist](https://packagist.org/packages/masoudi/laravel-sieve)[ RSS](/packages/masoudi-laravel-sieve/feed)WikiDiscussions main Synced 4d ago

READMEChangelog (5)Dependencies (2)Versions (7)Used By (0)

Laravel Sieve
=============

[](#laravel-sieve)

The Sieve is a Laravel framework package to create query filters much more easy and clean.

[![Latest Version on Packagist](https://camo.githubusercontent.com/258a30a27c640f194f7b8fa57f0db7dec9c9dd7e6efcbb5cf269e61b7244e7db/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d61736f7564692f6c61726176656c2d73696576652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/masoudi/laravel-sieve)[![Total Downloads](https://camo.githubusercontent.com/4641b11b1c59af5e3bd2a9b21f29d516285163817f5e000f1b6e457a290a326d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d61736f7564692f6c61726176656c2d73696576652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/masoudi/laravel-sieve)

 [![](flow/screenshot.png)](flow/screenshot.png)

### How to use

[](#how-to-use)

- [Install package](#install)
- [Create a filter](#create-a-filter)
- [Add Filterable trait to model](#add-filterable-trait-to-model)
- [Add filters to model](#add-filters-to-model)

Install
-------

[](#install)

install package with [Composer](https://getcomposer.org/)

```
composer require masoudi/laravel-sieve
```

Create A filter
---------------

[](#create-a-filter)

Create a new filter by running the following artisan command

```
php artisan make:filter IndexPostsFilter
```

Filter will be create at app/Http/Filters path.

```
use Masoudi\Sieve\Filter;

class IndexPostsFilter extends Filter
{
    /**
     * Apply conditions on model
     *
     * @param \Illuminate\Http\Request $request
     * @param \Illuminate\Database\Query\Builder $builder
     *
     * @return \Illuminate\Database\Query\Builder
     */
    function filter(Request $request, Builder $builder)
    {
       $builder = $builder->where("is_active", true)
            ->where('published', true)
            ->whereHas('comments', function($query){
                $query->where('slug', '=', $request->slug);
            });

        return $builder;
    }
}
```

Add Filterable trait to model
-----------------------------

[](#add-filterable-trait-to-model)

Use `Filterable` trait at model;

```
use Masoudi\Sieve\Filterable;

class Post extends Model {

    use Filterable;
 }
```

Add filters to model
--------------------

[](#add-filters-to-model)

```
Post::filter(new IndexPostsFilter)->get();
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

5

Last Release

1397d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7b448d28b1a97c9360d8d55b242f3d65142fc4c2e8daf6b0adfefcfd21cf5f7d?d=identicon)[reza\_masoudi](/maintainers/reza_masoudi)

---

Top Contributors

[![rezamasoudi](https://avatars.githubusercontent.com/u/109284641?v=4)](https://github.com/rezamasoudi "rezamasoudi (30 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/masoudi-laravel-sieve/health.svg)

```
[![Health](https://phpackages.com/badges/masoudi-laravel-sieve/health.svg)](https://phpackages.com/packages/masoudi-laravel-sieve)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
