PHPackages                             kevinwheeler/primevue-datatables - 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. [Admin Panels](/categories/admin)
4. /
5. kevinwheeler/primevue-datatables

ActiveLibrary[Admin Panels](/categories/admin)

kevinwheeler/primevue-datatables
================================

Easy Laravel Server-Side implementation of PrimeVue Datatables

07PHP

Since Nov 29Pushed 2y agoCompare

[ Source](https://github.com/kevinwheeler/primevue-datatables)[ Packagist](https://packagist.org/packages/kevinwheeler/primevue-datatables)[ RSS](/packages/kevinwheeler-primevue-datatables/feed)WikiDiscussions kevinwheeler-hasOne-sorting Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Kevin Wheeler's open source contribution to the savannabits/primevue-datatables library.
========================================================================================

[](#kevin-wheelers-open-source-contribution-to-the-savannabitsprimevue-datatables-library)

Please see [savannabits#12](https://github.com/savannabits/primevue-datatables/pull/12) for my (Kevin Wheeler)'s merged open source contributions.

\# Laravel + PrimeVue Datatables [![Latest Version on Packagist](https://camo.githubusercontent.com/a6370a64cd4a7ecc6717d352edc7e7dfea6d6cf5ae199c744e644fbafd74f8f4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f736176616e6e61626974732f7072696d657675652d646174617461626c65732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/savannabits/primevue-datatables)[![Total Downloads](https://camo.githubusercontent.com/a5143111a5a3421235ca244a18753ac0e90bbf34950e9a2b4a92abf04d4639ea/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f736176616e6e61626974732f7072696d657675652d646174617461626c65732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/savannabits/primevue-datatables)[![GitHub Actions](https://github.com/savannabits/primevue-datatables/actions/workflows/main.yml/badge.svg)](https://github.com/savannabits/primevue-datatables/actions/workflows/main.yml/badge.svg)

This is a simple, clean and fluent serve-side implementation of [PrimeVue Datatables](https://primefaces.org/primevue/showcase/#/datatable) in [Laravel](https://laravel.com/).

[![image](https://user-images.githubusercontent.com/5610289/159969279-155b736d-a1fa-49c8-a34a-cccc775103a4.png)](https://user-images.githubusercontent.com/5610289/159969279-155b736d-a1fa-49c8-a34a-cccc775103a4.png)

Features
--------

[](#features)

- Global Search including searching in relationships up to a depth of 3, e.g `author.user.name`
- Per-Column filtering out of the box
- Column Sorting with direction toggling
- Pagination with a dynamic `no. or records per page` setting
- Fully compatible with PrimeVue Datatable

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

[](#installation)

You can install the package via composer:

```
composer require savannabits/primevue-datatables
```

Usage
-----

[](#usage)

### Server Side

[](#server-side)

It is as simple as having this in your `index()` function of your controller:

```
public function index(Request $request): JsonResponse
{
    $list = PrimevueDatatables::of(Book::query())->make();
    return response()->json([
        'success' => true,
        'payload' => $list,
    ]);
}
```

#### Required Query Parameters

[](#required-query-parameters)

The server-side implementation uses two parameters from your laravel request object to perform filtering, sorting and pagination: You have to pass the following parameters as query params from the client:

1. Searchable Columns **(Passed as `searchable_columns`)** - Used to specify the columns that will be used to perform the global datatable search
2. Dt Params **(Passed as `dt_params`)** - This is the main Datatable event object as received from PrimeVue. See [Lazy Datatable](https://primefaces.org/primevue/showcase/#/datatable/lazy) documentation for more details

### Client Side:

[](#client-side)

**Here is a gist of a [Fully Working Vue3 + Tailwindcss component](https://gist.github.com/coolsam726/f156daa5b36a7a8217526eb82bcaa798) for the client side**.
Go through [PrimeVue's Lazy Datatable](https://primefaces.org/primevue/showcase/#/datatable/lazy) documentation for details on frontend implementation.

Here is an example of your `loadLazyData()` implementation:

```
const loadLazyData = async () => {
    loading.value = true;

    try {
        const res = await axios.get('/api/books',{
            params: {
                dt_params: JSON.stringify(lazyParams.value),
                searchable_columns: JSON.stringify(['title','author.name','price']),
            },
        });

        records.value = res.data.payload.data;
        totalRecords.value = res.data.payload.total;
        loading.value = false;
    } catch (e) {
        records.value = [];
        totalRecords.value = 0;
        loading.value = false;
    }
};
```

### Testing

[](#testing)

```
composer test
```

### Changelog

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Sam Maosa](https://github.com/savannabits)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 76.2% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/088f85bbd864e39ab823cd25e41d275311ff6208064641d41f4c047fbd24ad26?d=identicon)[spreadlove5683](/maintainers/spreadlove5683)

---

Top Contributors

[![coolsam726](https://avatars.githubusercontent.com/u/5610289?v=4)](https://github.com/coolsam726 "coolsam726 (16 commits)")[![kevinwheeler](https://avatars.githubusercontent.com/u/5334864?v=4)](https://github.com/kevinwheeler "kevinwheeler (3 commits)")[![lchris44](https://avatars.githubusercontent.com/u/85734871?v=4)](https://github.com/lchris44 "lchris44 (1 commits)")[![str4wh4t](https://avatars.githubusercontent.com/u/1651056?v=4)](https://github.com/str4wh4t "str4wh4t (1 commits)")

### Embed Badge

![Health badge](/badges/kevinwheeler-primevue-datatables/health.svg)

```
[![Health](https://phpackages.com/badges/kevinwheeler-primevue-datatables/health.svg)](https://phpackages.com/packages/kevinwheeler-primevue-datatables)
```

###  Alternatives

[jeroennoten/laravel-adminlte

Easy AdminLTE integration with Laravel

4.0k4.8M43](/packages/jeroennoten-laravel-adminlte)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1764.8M125](/packages/filament-spatie-laravel-media-library-plugin)[bezhansalleh/filament-exceptions

A Simple &amp; Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel

193195.9k13](/packages/bezhansalleh-filament-exceptions)[filament/infolists

Easily add beautiful read-only infolists to any Livewire component.

1220.8M36](/packages/filament-infolists)

PHPackages © 2026

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