survos / grid-bundle
The basics: render a plain in-memory or single-fetch table with Twig + Stimulus + DataTables.net (v3). No ApiPlatform required — see survos/api-grid-bundle for that.
Package info
Type:symfony-bundle
pkg:composer/survos/grid-bundle
Fund package maintenance!
Requires
- php: ^8.5
- doctrine/doctrine-bundle: ^3.0
- doctrine/orm: ^3.3
- doctrine/persistence: ^4.1
- survos/core-bundle: ^2.5
- survos/kit-bundle: ^2.5
- symfony/config: ^8.1
- symfony/dependency-injection: ^8.1
- symfony/http-kernel: ^8.1
- symfony/options-resolver: ^8.1
- symfony/property-access: ^8.1
- symfony/stimulus-bundle: ^3
- symfony/ux-twig-component: ^3
- twig/twig: ^3.4|^4.0
Requires (Dev)
- phpstan/phpstan: ^2.0
- symfony/browser-kit: ^8.1
- symfony/framework-bundle: ^8.1
- symfony/phpunit-bridge: ^8.1
- symfony/twig-bundle: ^8.1
- symfony/var-dumper: ^8.1
Suggests
- monolog/monolog: Allows more advanced logging of the application flow
- survos/api-grid-bundle: For javascript-based grid rendering
This package is auto-updated.
Last update: 2026-08-07 12:15:28 UTC
README
Use the DataTables.net javascript library with Symfony, Twig.
composer req survos/grid-bundle
Ideas
Import the datasets at https://domohelp.domo.com/hc/en-us/articles/360043931814-Fun-Sample-DataSets https://www.mytechylife.com/2015/09/29/next-and-previous-row-with-jquery-datatables/ https://github.com/lerocha/chinook-database http://2016.padjo.org/tutorials/sqlite-data-starterpacks/#more-info-simplefolks-for-simple-sql
Dev only...
composer config repositories.survos_grid_bundle '{"type": "vcs", "url": "git@github.com:survos/SurvosGridBundle.git"}'
symfony new grid-demo --webapp --version=next --php=8.2 && cd grid-demo composer config extra.symfony.allow-contrib true composer req symfony/asset-mapper symfony/stimulus-bundle:2.x-dev composer req survos/grid-bundle survos/scraper-bundle # make it prettier with bootstrap, but not necessary bin/console importmap:require bootstrap echo "import 'bootstrap/dist/css/bootstrap.min.css'" >> assets/app.js bin/console make:controller grid -i cat > templates/grid.html.twig <<END {% extends 'base.html.twig' %} {% block body %} {% set data = request_data('https://jsonplaceholder.typicode.com/users') %} <twig:grid :data="data" :columns="data[0]|keys"> <twig:block name="id"> {{ row.id }} </twig:block> <twig:block name="title"> <i>{{ row.title }}</i> </twig:block> </twig:grid> </table> {% endblock %} END symfony server:start -d symfony open:local --path=/grid