Skip to content

Introduction

Inertia Table is the Eloquent-powered table component for Laravel + Inertia.js. It turns a single PHP class into a fully interactive data table with sorting, filtering, exports, bulk actions, saved views, and a built-in query builder. It ships in both Vue 3 and React 19, and is part of Inertia UI, a suite of commercial packages designed for Laravel, Inertia.js, and Tailwind CSS.

On v3?

The v3 documentation is archived at inertiaui.com/inertia-table/legacy-docs. See the upgrade guide for what changed in v4.

  • Sorting, including support for related models
  • Pagination with a customizable number of items per page
  • Toggleable columns
  • Sticky columns and header
  • Search with support for related models
  • Extensive filtering options (text, date, boolean, sets, etc.)
  • Row links, actions and bulk actions with customizable confirmation dialogs and icons
  • Export to CSV, Excel, and PDF
  • Queued exports for large datasets
  • Multiple tables per page with independent settings
  • Dark mode and RTL support
  • Empty state with customizable message and actions
  • Integration with Inertia Modal
  • Extensively tested across multiple Laravel versions, PHP versions, and database drivers (MariaDB, MySQL, PostgreSQL, SQLite)
  • Built for Laravel and Inertia.js with React and Vue support

Example Table class

Tables may be defined fluently with a builder or via dedicated classes. Here's a typical Table class:

php
class Users extends Table
{
    protected ?string $resource = User::class;

    public function columns(): array
    {
        return [
            Columns\TextColumn::make('id', 'ID', toggleable: false),
            Columns\TextColumn::make('name', 'Full Name', sortable: true),
            Columns\TextColumn::make('email', sortable: true),
            Columns\DateColumn::make('email_verified_at'),
            Columns\ActionColumn::new(),
        ];
    }

    public function filters(): array
    {
        return [
            Filters\TextFilter::make('name', 'Full Name'),
            Filters\TextFilter::make('email'),
            Filters\BooleanFilter::make('is_admin', 'Admin'),
            Filters\DateFilter::make('email_verified_at')->nullable(),
        ];
    }

    public function actions(): array
    {
        return [
            Action::make('Deactivate', handle: fn (User $user) => $user->deactivate())
                ->asDangerButton()
                ->asBulkAction()
                ->confirm(
                    title: 'Deactivate User',
                    message: 'Are you sure you want to deactivate this user? This will remove their verified email status.',
                    confirmButton: 'Deactivate',
                )
        ];
    }
}

Getting Started

Ready to add Inertia Table to your Laravel app? Pick the install guide that matches your stack:

Or jump straight to Generating Tables and Basic Usage once you have it installed.

License and Pricing

Inertia Table is a commercial package. A license unlocks both the Vue and React versions, includes one year of updates, and your version keeps working forever.

  • Single project at €199, valid for one Laravel application
  • Unlimited projects at €649, valid for every project you ship

Both tiers include the full source code, twelve months of updates, and a discount on every other Inertia UI package. View pricing and buy a license →

Frequently Asked Questions

Does Inertia Table work with Vue and React?

Yes. Inertia Table ships in both Vue 3.4+ and React 19+, with feature parity between the two frontends. A single license unlocks both packages, and the same PHP Table class drives either stack. You only swap which NPM package you import on the frontend.

What versions of Laravel and Inertia.js does it support?

Inertia Table v4.x supports PHP 8.2+, Laravel 12 or 13, and Inertia.js v2 or v3. It is tested against MariaDB, MySQL, PostgreSQL, and SQLite. See the requirements page for the complete matrix.

Is there a free version?

No. Inertia Table is a paid commercial package. The smallest license is €199 for a single Laravel project; it includes the Vue and React frontends, the source code, twelve months of updates, and your version keeps working after the update window ends. A live demo is available to try before buying.

Can I export tables to CSV, Excel, or PDF?

Yes. Inertia Table integrates with Laravel Excel to export the current table view to CSV, Excel, or PDF. Exports can run inline for small datasets or be pushed onto the queue with user notification when the file is ready. See the exporting page.

Yes. Both sorting and search work across Eloquent relationships without you writing the joins yourself. The built-in query builder resolves the relationships and applies the correct query constraints automatically.

Who built Inertia Table?

Inertia Table is built and maintained by Pascal Baljet, creator of Inertia UI, author of several other Laravel packages, and contributor to Inertia.js.