Skip to content

Introduction

Introduction

UX DataTables is a Symfony bundle that integrates the powerful DataTables JavaScript library into your Symfony applications with a clean PHP API.

What is DataTables?

DataTables is a highly flexible tool for creating interactive HTML tables with features like:

  • Pagination
  • Instant search and filtering
  • Multi-column sorting
  • Ajax data loading
  • Server-side processing
  • Export to CSV, Excel, PDF

Why UX DataTables?

This bundle provides a Symfony-native way to work with DataTables:

PHP-First Configuration

Configure your tables entirely in PHP with a fluent builder API:

$table = $builder
->createDataTable('users')
->columns([
TextColumn::new('name', 'Name'),
NumberColumn::new('age', 'Age'),
])
->pageLength(25)
->searching(true);

Stimulus Integration

Built on Symfony UX StimulusBundle, the bundle automatically handles JavaScript initialization through Stimulus controllers.

Twig Helper

Render tables with a simple Twig function:

{{ render_datatable(table) }}

Doctrine Integration

Use the #[AsDataTable] attribute to create tables backed by Doctrine entities with automatic server-side processing:

#[AsDataTable(User::class)]
final class UsersDataTable extends AbstractDataTable
{
public function configureColumns(): iterable
{
yield TextColumn::new('id', 'ID');
yield TextColumn::new('email', 'Email');
}
}

Architecture Overview

┌─────────────────────────────────────────────────────┐
│ Controller │
│ ┌───────────────────────────────────────────────┐ │
│ │ DataTableBuilderInterface │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ DataTable │
│ ┌─────────┐ ┌─────────┐ ┌────────────────────┐ │
│ │ Columns │ │ Options │ │ Extensions │ │
│ └─────────┘ └─────────┘ └────────────────────┘ │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ Twig Template │
│ {{ render_datatable(table) }} │
└─────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────┐
│ Stimulus Controller │
│ (Auto-initialized by Symfony UX) │
└─────────────────────────────────────────────────────┘