Skip to content

DataGrid

DataGrid est le composant de table de données de Doggy, piloté côté serveur par une entité de configuration DataGrid + DataGridService, avec prise en charge de la pagination, du tri, du filtrage, de l'export et d'autres fonctionnalités avancées.

Aperçu

Le système DataGrid est composé des éléments suivants (src/Component/Database/) :

Component/Database/
├── Bridge/
│   ├── DataSetInterface.php   # 数据集接口
│   ├── DataSource.php         # 数据源抽象
│   ├── DoctrineDataSet.php    # Doctrine 数据集实现
│   ├── FilterCondition.php    # 筛选条件
│   └── FilterGroup.php        # 筛选条件组
└── View/
    └── DataGrid.php           # DataGrid 视图组件

Configuration

DataGrid persiste sa configuration via l'entité App\Entity\Platform\DataGrid, et DataGridService fournit le support côté serveur :

php
use App\Service\Platform\DataGridService;

class DataGridController
{
    public function index(DataGridService $service): Response
    {
        $dataGrid = $service->findDataGridByEntityClass(Department::class);
        $config = $dataGrid->getDefaultConfigData();

        return $this->render('admin/index.html.twig', [
            'gridConfig' => $config,
        ]);
    }
}

Filtres

DataGrid construit les conditions de filtre avec FilterCondition et FilterGroup, profondément intégré à l'agent de requête en langage naturel IA :

  • Filtre texte (flou/exact)
  • Filtre par plage numérique
  • Filtre par plage de dates
  • Filtre par liste déroulante
  • Filtre par entité liée (prise en charge de la notation pointée)

Sources de données

Les sources de données sont abstraites via DataSetInterface, avec prise en charge actuelle de :

  • DoctrineDataSet : basé sur Doctrine QueryBuilder
  • DataSource : classe de base des sources de données
  • Prise en charge d'implémentations de sources de données personnalisées

Composant frontend

Le frontend effectue le rendu via la macro Twig sunui_datagrid :

twig
{% include 'components/datagrid.html.twig' with {
    columns: columns,
    data: paginator,
    config: gridConfig
} %}

Fonctionnalités

  • Pagination et tri côté serveur
  • Filtrage multi-colonnes (combinaison AND/OR)
  • Export des données
  • Intégration avec la requête en langage naturel de l'agent IA
  • Persistance de la configuration en base de données

Open source sous licence MIT | Copyright © 2026 Doggy