Skip to content

DataGrid

DataGrid ist die Datentabellen-Komponente von Doggy. Über die DataGrid-Entitätskonfiguration + DataGridService serverseitig angetrieben, unterstützt sie erweiterte Funktionen wie Paginierung, Sortierung, Filterung und Export.

Übersicht

Das DataGrid-System besteht aus folgenden Teilen (src/Component/Database/):

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

Konfiguration

DataGrid persistiert seine Konfiguration über die Entität App\Entity\Platform\DataGrid, DataGridService bietet die serverseitige Unterstützung:

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,
        ]);
    }
}

Filter

DataGrid verwendet FilterCondition und FilterGroup zum Aufbau von Filterbedingungen und ist eng mit dem KI-Natural-Language-Query-Agent integriert:

  • Textfilter (unscharf/exakt)
  • Zahlenbereichs-Filter
  • Datumsbereichs-Filter
  • Dropdown-Auswahlfilter
  • Filter über zugehörige Entitäten (mit Dot-Notation)

Datenquellen

Über DataSetInterface werden Datenquellen abstrahiert, aktuell unterstützt:

  • DoctrineDataSet: basiert auf dem Doctrine QueryBuilder
  • DataSource: Basisklasse für Datenquellen
  • Benutzerdefinierte DataSet-Implementierungen

Frontend-Komponente

Das Frontend rendert über das Twig-Macro sunui_datagrid:

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

Funktionen

  • Serverseitige Paginierung und Sortierung
  • Mehrspaltenfilter (AND/OR-Kombination)
  • Datencxport
  • Integration mit der Natural-Language-Query des KI-Agents
  • Persistente Konfiguration in der Datenbank

Open Source unter MIT | Copyright © 2026 Doggy