https://github.com/pentiminax/ux-datatables
UX DataTables is a Symfony bundle integrating the DataTables library in Symfony applications.
https://github.com/pentiminax/ux-datatables
datatables datatables-bundle php symfony-bundle symfony-ux
Last synced: about 2 months ago
JSON representation
UX DataTables is a Symfony bundle integrating the DataTables library in Symfony applications.
- Host: GitHub
- URL: https://github.com/pentiminax/ux-datatables
- Owner: pentiminax
- License: mit
- Created: 2025-01-31T13:33:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-20T20:01:37.000Z (2 months ago)
- Last Synced: 2026-04-20T21:16:03.796Z (2 months ago)
- Topics: datatables, datatables-bundle, php, symfony-bundle, symfony-ux
- Language: PHP
- Homepage: https://pentiminax.github.io/ux-datatables/
- Size: 1.18 MB
- Stars: 61
- Watchers: 3
- Forks: 9
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# UX DataTables
[](https://packagist.org/packages/pentiminax/ux-datatables)
[](https://packagist.org/packages/pentiminax/ux-datatables)
[](https://packagist.org/packages/pentiminax/ux-datatables/stats)
[](https://codecov.io/gh/pentiminax/ux-datatables)
UX DataTables is a Symfony bundle integrating the [DataTables][1]
library in Symfony applications.
[Video tutorial](https://youtu.be/qYHRXr_qdPY)
[1]: https://datatables.net
## Requirements
- PHP 8.3 or higher
- Symfony StimulusBundle (installed through Symfony UX)
- Composer
## Installation
Install the library via Composer:
```console
composer require pentiminax/ux-datatables
```
## Usage
### 1. Declare a DataTable
```php
use App\Entity\User;
use Pentiminax\UX\DataTables\Attribute\AsDataTable;
use Pentiminax\UX\DataTables\Column\BooleanColumn;
use Pentiminax\UX\DataTables\Column\DateColumn;
use Pentiminax\UX\DataTables\Column\NumberColumn;
use Pentiminax\UX\DataTables\Column\TextColumn;
use Pentiminax\UX\DataTables\Model\AbstractDataTable;
#[AsDataTable(User::class)]
final class UserDataTable extends AbstractDataTable
{
public function configureColumns(): iterable
{
return [
NumberColumn::new('id', 'ID'),
TextColumn::new('firstName', 'First name'),
TextColumn::new('email', 'Email'),
DateColumn::new('createdAt', 'Created at'),
];
}
}
```
Column variants are configured fluently after `new()`:
```php
TextColumn::new('name')->utf8();
TextColumn::new('content')->html()->utf8();
NumberColumn::new('price')->formatted();
BooleanColumn::new('active')->renderAsSwitch();
```
### 2. Wire it in a controller
```php
#[Route('/users', name: 'app_users')]
public function index(UserDataTable $table, Request $request): Response
{
$table->handleRequest($request);
if ($table->isRequestHandled()) {
return $table->getResponse();
}
return $this->render('user/index.html.twig', [
'table' => $table,
]);
}
```
### 3. Render in Twig
```twig
{{ render_datatable(table) }}
```
> Tip: run `php bin/console make:datatable` to scaffold a DataTable class from any Doctrine entity.
## Documentation
- [Online documentation](https://pentiminax.github.io/ux-datatables/)