New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js
3,823 31
Install
composer require forjedio/inertia-table
Latest Version:v1.2.0
PHP:^8.2
Laravel:12 · 13
License:MIT
Last Updated:May 30, 2026
Links: GitHub  ·  Packagist
Maintainer: richard-forjedio

Inertia Table

Backend-driven dynamic tables for Laravel + Inertia.js. Define your entire table in PHP - columns, sorting, searching, pagination, and display formatting - and the frontend renders it automatically. No duplicated definitions, no frontend table logic, no state management.

Tests PHP Coverage Vue Coverage React Coverage Documentation License

Inertia Table

Quick Example

class CompanyTable extends Table
{
    protected string $defaultSort = '-created_at';

    protected function columns(): array
    {
        return [
            LinkColumn::make('name', 'Name')
                ->route('companies.show', ['company' => ':id'])
                ->sortable(),
            TextColumn::make('email', 'Email')->sortable(),
            EnumColumn::make('status', 'Status')->sortable(),
            BooleanColumn::make('active', 'Active'),
            DateTimeColumn::make('created_at', 'Created')->sortable(),
            ActionsColumn::make(),
            Column::data('id'),
        ];
    }

    protected function searchable(): array
    {
        return ['name', 'email'];
    }
}

Pass it to your Inertia page:

return Inertia::render('Companies/Index', [
    'companies' => CompanyTable::make(Company::query())->paginate(),
]);

Render it on the frontend:

import { InertiaTable } from '@forjedio/inertia-table-react';

export default function Index({ companies }) {
    return <InertiaTable tableData={companies} />;
}

That's it. Search, sorting, pagination, and all cell rendering handled automatically.

Features

  • 11 column types - Text, Badge, Boolean, Date, DateTime, Link, Copyable, Enum, Component, Actions, and hidden data columns
  • Icon modifiers - withIcon() and asIcon() on any column with map, closure, or fixed icon support
  • Sorting - single-column with URL state, three-tier priority, - prefix for descending
  • Searching - global full-text search with configurable debounce
  • Pagination - full and simple modes with configurable per-page
  • Enum integration - PHP enums automatically render as coloured badges
  • Table hooks - beforeQuery and afterData hooks for query modification and data transformation
  • Frontend hooks - extension system for realtime updates, analytics, and feature flags
  • Link routing - Ziggy or server-side URL resolution (configurable)
  • Multiple tables - identifier system for independent tables on the same page
  • Component columns - register reusable frontend components for custom cell rendering
  • Dark mode - all styles include dark: variants out of the box
  • Fully customisable - override any cell, header, search, pagination, or toolbar via render props. Compatible with shadcn/ui.

Installation

Install the backend package via Composer:

composer require forjedio/inertia-table

Then install the frontend package for your stack:

# React
npm install @forjedio/inertia-table-react

# Vue
npm install @forjedio/inertia-table-vue

Both frontend packages need Tailwind to scan their dist/ so utility classes used by the table are emitted into your CSS bundle. See the per-package READMEs for the exact @source directive (Tailwind v4) or content entry (Tailwind v3):

Requirements

  • PHP 8.2+
  • Laravel 12 or 13
  • Inertia.js 2.x or 3.x
  • React 18/19 or Vue 3.4+
  • Tailwind CSS 3.4+ or 4.0+

Documentation

Full documentation is available at inertia-table.forjed.io.

Live Demo

See it in action at inertia-table-demo.forjed.io.

License

MIT

Related Packages

eklundlabs/inertiajs-datatables

Laravel inertiajs datatables

3 1
rudiwer/rwtable-laravel

Reusable RWTable backend package for Laravel applications.

34 0
givanov95/laravel-data-table

A server-side DataTable builder for Laravel with a matching Vue 3 + Inertia fron...

1,487 0
invue/tables

Native Vue 3 data table components for the Invue framework, wired to Eloquent vi...

138 0
dongrim/datatable-inertia

Easy build datatable for InertiaJS on Laravel

15 3

Version History

Version Released PHP Laravel License
v1.2.0 ^8.2 ^12.0|^13.0 MIT
v1.1.5 ^8.2 ^12.0|^13.0 MIT
v1.1.4 ^8.2 ^12.0|^13.0 MIT
v1.1.3 ^8.2 ^12.0|^13.0 MIT
v1.1.2 ^8.2 ^12.0|^13.0 MIT
Pre-releases (1)
Version Released PHP Laravel License
v1.0.0-rc.1 ^8.2 ^12.0|^13.0 MIT