Skip to content

DataGrid ​

DataGrid is Doggy's data table component, driven by the DataGrid entity configuration and DataGridService on the server side. It supports pagination, sorting, filtering, export, and more.

Overview ​

The DataGrid system lives in src/Component/Database/:

Component/Database/
├── Bridge/
│   ├── DataSetInterface.php   # Data set interface
│   ├── DataSource.php         # Data source abstraction
│   ├── DoctrineDataSet.php    # Doctrine data set implementation
│   ├── FilterCondition.php    # Filter condition
│   └── FilterGroup.php        # Filter condition group
└── View/
    └── DataGrid.php           # DataGrid view component

Configuration ​

DataGrid configuration is persisted via the App\Entity\Platform\DataGrid entity. The DataGridService provides server-side support:

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

Filters ​

DataGrid uses FilterCondition and FilterGroup for filter construction, deeply integrated with the AI natural language query agent:

  • Text filter (fuzzy/exact)
  • Number range filter
  • Date range filter
  • Dropdown select filter
  • Related entity filter (supports dot notation)

Data Sources ​

The DataSetInterface abstracts data sources. Currently supported:

  • DoctrineDataSet: Based on Doctrine QueryBuilder
  • DataSource: Base data source class
  • Custom implementations supported

Frontend Component ​

The frontend renders via the sunui_datagrid Twig macro:

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

Features ​

  • Server-side pagination & sorting
  • Multi-column filtering (AND/OR combinations)
  • Data export
  • AI Agent natural language query integration
  • Database-persisted configuration

Open Source under MIT | Copyright © 2026 Doggy