PHPackages                             ahmadhsalim/eloquent-filter-resolver - 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. [Database &amp; ORM](/categories/database)
4. /
5. ahmadhsalim/eloquent-filter-resolver

ActiveLibrary[Database &amp; ORM](/categories/database)

ahmadhsalim/eloquent-filter-resolver
====================================

Resolves a string based filter query into an eloquent query.

1.0.1(2y ago)7701MITPHPPHP ^8.1

Since Jul 6Pushed 2y ago1 watchersCompare

[ Source](https://github.com/ahmadhsalim/eloquent-filter-resolver)[ Packagist](https://packagist.org/packages/ahmadhsalim/eloquent-filter-resolver)[ RSS](/packages/ahmadhsalim-eloquent-filter-resolver/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (1)Versions (3)Used By (0)

Eloquent Filter Resolver
========================

[](#eloquent-filter-resolver)

The Eloquent Filter Resolver is a package that allows you to resolve a filter string into an Eloquent query in Laravel. It provides a convenient way to filter Eloquent models based on various conditions and operators.

Installation
------------

[](#installation)

You can install the Eloquent Filter Resolver package via Composer. Run the following command:

```
composer require ahmadhsalim/eloquent-filter-resolver
```

Usage
-----

[](#usage)

To use the Eloquent Filter Resolver, follow the example below:

```
use App\Http\Controllers\Controller;
use App\Models\User;
use Salim\FilterResolver\EloquentFilterResolver;

class UserController extends Controller
{
    public function index()
    {
        $query = User::query();
        $filter = 'contains(name, "john") and eq(status, active)';

        EloquentFilterResolver::resolve($query, $filter);

        return $query->paginate();
    }
}
```

In the above example, we create an Eloquent query for the `User` model and apply a filter using the Eloquent Filter Resolver. The filter string `contains(name, "john") and eq(status, active)` filters the users whose names contain "john" and have an active status.

### Supported Operators

[](#supported-operators)

The Eloquent Filter Resolver supports the following operators:

- `contains`: Performs a case-insensitive search using the `LIKE` operator. Uses `ILIKE` for `pgsql` driver. Usage: `contains(field, value)`.
- `eq`: Performs an equality comparison using the `=` operator. Usage: `eq(field, value)`.
- `ne`: Performs a not-equal comparison using the `!=` operator. Usage: `ne(field, value)`.
- `gt`: Performs a greater-than comparison using the `>` operator. Usage: `gt(field, value)`.
- `gte`: Performs a greater-than-or-equal comparison using the `>=` operator. Usage: `gte(field, value)`.
- `lt`: Performs a less-than comparison using the `
