Declare the table. Ship the grid.
UX DataTables wires DataTables.net into Symfony. Columns, filters, and row actions are declared in a PHP class; the bundle ships the Stimulus controller, the Ajax endpoints, and the Twig function that renders them.
composer require pentiminax/ux-datatables| Reference | Customer | Total | Status |
|---|---|---|---|
| #1048 | Ada Lovelace | €128.00 | Paid |
| #1049 | Grace Hopper | €64.50 | Review |
| #1050 | Alan Turing | €312.20 | Shipped |
| #1051 | Katherine Johnson | €89.90 | Paid |
Where the rows come from
Client-side
The rows travel with the page. DataTables.net paginates, searches, and sorts in the browser — the right shape for a few hundred rows you already have.
Read the guideDoctrine server-side
One Ajax endpoint, one query builder. Pagination, search, and ordering are pushed down to Doctrine, so the table stays fast at a million rows.
Read the guideLive updates
Publish a mutation over Mercure and the open tables redraw themselves. No polling, no second data path to keep in sync.
Read the guideThe column is the unit
A column knows its own type, so it knows how to render, sort, and search itself. Money formats with its currency, a choice renders its enum label, a date follows its format — and the same declaration drives the Doctrine query behind server-side processing.
Thirteen column types ship with the bundle, from Text to Action. The columns overview compares them side by side.
#[AsDataTable(name: 'orders')]
class OrderTable extends AbstractDataTable
{
public function configureColumns(): iterable
{
yield TextColumn::new('reference');
yield TextColumn::new('customer.name')->title('Customer');
yield MoneyColumn::new('total')->currency('EUR');
yield ChoiceColumn::new('status')->choices(Status::class);
}
}Find your way in
Install the bundle, render a first table, and secure the Ajax routes it exposes.
What the bundle does, and which processing mode a given table should use.
Complete tables you can paste into a project — entity, table class, controller, template.
Configuration, options, styling, filters, and the two processing modes in depth.
The official DataTables.net extensions the bundle wires up for you.
Classes, attributes, enums, and the Ajax contract, described exactly.