Démarrage Rapide
Créons votre premier DataTable en 5 minutes ! 🚀
Vue d'ensemble
Ce guide vous montre comment créer un DataTable complet à partir d'une entité Doctrine existante.
Ce que vous allez obtenir
À la fin de ce guide, vous aurez :
- ✅ Un DataTable Bootstrap responsive
- ✅ Recherche en temps réel
- ✅ Tri des colonnes
- ✅ Pagination automatique
- ✅ Actions CRUD (optionnel)
Prérequis
- Bundle installé (voir Installation)
- Une entité Doctrine existante (ex:
User
,Product
, etc.) - Serveur de développement Symfony en cours d'exécution
Étape 1 : Génération automatique
Commande de base
php bin/console make:datatable User
Cette commande va :
- 🔍 Analyser votre entité
User
- 📝 Générer la configuration YAML
- 🎨 Créer le template Twig
- ✅ Configurer tous les champs automatiquement
Commande avec options avancées
php bin/console make:datatable User --controller --with-actions --with-export
Options disponibles :
--controller
: Génère un contrôleur CRUD complet--with-actions
: Ajoute les actions (voir, éditer, supprimer)--with-export
: Active l'export CSV/Excel--with-bulk
: Active les actions groupées
Étape 2 : Configuration générée
Note v2.3.0+ : Avec Symfony Flex, le fichier de configuration est automatiquement créé via la recipe intégrée.
La commande crée/met à jour config/packages/sigmasoft_data_table.yaml
:
config/packages/sigmasoft_data_table.yaml
sigmasoft_data_table:
entities:
'App\Entity\User':
label: 'Gestion des Users'
items_per_page: 25
enable_search: true
enable_sort: true
enable_pagination: true
fields:
id:
type: integer
label: 'ID'
sortable: true
searchable: false
name:
type: string
label: 'Nom'
sortable: true
searchable: true
email:
type: string
label: 'Email'
sortable: true
searchable: true
createdAt:
type: date
label: 'Créé le'
sortable: true
searchable: false
format: 'd/m/Y H:i'
Étape 3 : Template généré
Le template templates/admin/user/index.html.twig
est créé :
templates/admin/user/index.html.twig
{% extends 'base.html.twig' %}
{% block title %}Gestion des Users{% endblock %}
{% block body %}
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="d-flex justify-content-between align-items-center mb-4">
<h1 class="h3 mb-0">
<i class="fas fa-table me-2"></i>
Gestion des Users
</h1>
<div class="d-flex gap-2">
<a href="{{ path('user_new') }}" class="btn btn-primary">
<i class="fas fa-plus me-1"></i>
Nouveau User
</a>
</div>
</div>
<div class="card shadow-sm">
<div class="card-body p-0">
{# 🚀 COMPOSANT DATATABLE - UNE SEULE LIGNE ! #}
<twig:SigmasoftDataTable entityClass="App\Entity\User" />
</div>
</div>
</div>
</div>
</div>
{% endblock %}