PHPackages                             elnelsonperez/kendo-grid-parser - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. elnelsonperez/kendo-grid-parser

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

elnelsonperez/kendo-grid-parser
===============================

A package to apply Kendo Grid filters to a query builder instance in Laravel.

1.3(6y ago)2951MITPHPPHP &gt;=7.1.3CI failing

Since Oct 16Pushed 6y ago1 watchersCompare

[ Source](https://github.com/elnelsonperez/kendo-grid-parser)[ Packagist](https://packagist.org/packages/elnelsonperez/kendo-grid-parser)[ RSS](/packages/elnelsonperez-kendo-grid-parser/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (4)Versions (5)Used By (0)

Laravel Kendo Grid Parser
=========================

[](#laravel-kendo-grid-parser)

Takes a Kendo Angular Grid state and applies all its filters to a Laravel query builder instance. Works with any of these query builders out of the box:

- `\Illuminate\Database\Query\Builder::class`
- `\Illuminate\Database\Query\Builder::class`
- `\Tinderbox\ClickhouseBuilder\Integrations\Laravel\Builder::class` ()

Tested with `@progress/kendo-angular-grid v3.X.X` and Laravel 5.6 and up.

Instalation
-----------

[](#instalation)

`composer require elnelsonperez/kendo-grid-parser`

The package will be auto-discovered by Laravel 5.5+

Usage
-----

[](#usage)

##### Example grid state as JSON

[](#example-grid-state-as-json)

```
{
  "filter": {
    "filters": [
      {
        "field": "name",
        "operator": "contains",
        "value": "John"
      }
    ],
    "logic": "and"
  },
  "group": [],
  "skip": 0,
  "sort": [
    {
      "field": "user_id",
      "dir": "asc"
    }
  ],
  "take": 50
}
```

This would be sent from the client and into the controller below.

##### Example Controller

[](#example-controller)

```
    public function list(Request $request, KendoGridService $service)
    {
        $valid = $this->validate($request, [
            'skip'   => 'numeric|nullable',
            'take'   => 'numeric|nullable',
            'sort'   => 'array|nullable',
            'filter' => 'array|nullable'
        ]);

        // Base query. It's convenient to wrap the inner query before applying any grid filters
        $query = DB::query()->fromSub(
            User::selectRaw('users.id user_id, users.name, addresses.address')
                ->leftJoin('addresses', 'addresses.user_id', '=','users.id'), 'T'
        );

        $result_query = $service->execute(
            // Grid State
            $valid,
            // Grid columns and types (string, number, date, or boolean)
            [
                'user_id'                           => 'number',
                'name'                              => 'string',
                'address'                           => 'string',
            ],
            // The query builder instance to apply the filters to.
            // The service detects the query builder instance class and chooses which adapter to use to build the resulting
            // query builder based on the packages configuration
            $query
        );

        return response([
            'data'  => $result_query->get(),
            'total' => $result_query->count()
        ]);
    }
```

The returned query builder instance would have all the filters received applied to it, but you can continue using it as you please.

Configuration
-------------

[](#configuration)

You can publish the packages configuration to customize/extend the implementations used by doing

`php artisan vendor:publish --provider="ElNelsonPerez\KendoGridParser\KendoGridParserServiceProvider"`

Further configuration options could be provided upon request.

Motivation
----------

[](#motivation)

I pulled this code from another project to reuse between projects as I deal with Kendo Grid and Laravel often enough, and figured it would be useful to someone else.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity56

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 ~32 days

Total

4

Last Release

2305d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/cca7f5db8aa64f76e12af3d3b61c5d8b6c1a7cb0cfc342f757eabf3c30c4caeb?d=identicon)[elnelsonperez](/maintainers/elnelsonperez)

---

Top Contributors

[![elnelsonperez](https://avatars.githubusercontent.com/u/25963199?v=4)](https://github.com/elnelsonperez "elnelsonperez (31 commits)")

---

Tags

laravelparserkendokendo gridlaravel kendo

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/elnelsonperez-kendo-grid-parser/health.svg)

```
[![Health](https://phpackages.com/badges/elnelsonperez-kendo-grid-parser/health.svg)](https://phpackages.com/packages/elnelsonperez-kendo-grid-parser)
```

###  Alternatives

[pherum/laravel-bbcode

Parse your BBCode easy with this library.

2427.5k](/packages/pherum-laravel-bbcode)

PHPackages © 2026

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