{"id":22481894,"url":"https://github.com/kibatic/datagrid-bundle","last_synced_at":"2026-02-27T13:14:34.881Z","repository":{"id":41327052,"uuid":"496214923","full_name":"kibatic/datagrid-bundle","owner":"kibatic","description":"Datagrid bundle for Symfony","archived":false,"fork":false,"pushed_at":"2026-01-22T16:42:18.000Z","size":124,"stargazers_count":14,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-23T10:06:37.740Z","etag":null,"topics":["php","symfony"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kibatic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-25T12:09:28.000Z","updated_at":"2026-01-22T16:41:24.000Z","dependencies_parsed_at":"2023-11-16T13:40:42.456Z","dependency_job_id":"31b26523-4459-4b7a-bd1b-815b99592fa4","html_url":"https://github.com/kibatic/datagrid-bundle","commit_stats":{"total_commits":34,"total_committers":5,"mean_commits":6.8,"dds":"0.47058823529411764","last_synced_commit":"e8e49411103e916b02aba31d9c35bf4db433fa5b"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"purl":"pkg:github/kibatic/datagrid-bundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibatic%2Fdatagrid-bundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibatic%2Fdatagrid-bundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibatic%2Fdatagrid-bundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibatic%2Fdatagrid-bundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kibatic","download_url":"https://codeload.github.com/kibatic/datagrid-bundle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kibatic%2Fdatagrid-bundle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29896315,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T12:09:13.686Z","status":"ssl_error","status_checked_at":"2026-02-27T12:09:13.282Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","symfony"],"created_at":"2024-12-06T16:17:09.283Z","updated_at":"2026-02-27T13:14:34.853Z","avatar_url":"https://github.com/kibatic.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Kibatic Datagrid Bundle\n=======================\n\nDatagrid bundle for Symfony with the following design philosophy : less magic for more flexibility.\n\nIt's not the usual one line datagrid generator, it's a more verbose one but we think it's worth it.\n\nFeatures\n--------\n\n- Your entities in a table\n- Pagination\n- Sortable\n- Filterable\n- Actions (single \u0026 batch)\n- Customizable templates\n- Only supports Doctrine ORM\n- Theme support (Bootstrap 5 included)\n\n\nQuick start\n-----------\n\n### Install the bundle\n\n```bash\ncomposer require kibatic/datagrid-bundle\n```\n\nAdd this to your `assets/controllers.json` :\n\n```json\n{\n    \"controllers\": {\n        \"@kibatic/datagrid-bundle\": {\n            \"checker\": {\n                \"enabled\": true,\n                \"fetch\": \"eager\"\n            }\n        }\n}\n```\n\nYou'll most likely also need to enable this twig function : https://twig.symfony.com/doc/2.x/functions/template_from_string.html\n\nIt's not a hard dependency but some features shown here also requires you to install `kibatic/ux-bundle` :\n\n```bash\ncomposer require kibatic/ux-bundle\n```\n\nIf you want to use the default templates styles and you don't have bootstrap css loaded yet, you will need to.\nIf you're using AssetMapper, you can simply add this to your `assets/app.js` :\n```javascript\nimport 'bootstrap/dist/css/bootstrap.min.css';\n```\n\n### Basic usage\n\nYou can simply generate a specialized datagrid builder class skeleton using the make command :\n\n```\nbin/console make:datagrid\n```\n\nOr do everything manually, for example in your controller :\n\n```php\n\u003c?php\n\nnamespace App\\Controller;\n\nuse App\\Entity\\Project;\nuse App\\Repository\\ProjectRepository;\nuse Kibatic\\DatagridBundle\\Grid\\GridBuilder;\nuse Kibatic\\DatagridBundle\\Grid\\Template;\nuse Kibatic\\DatagridBundle\\Grid\\Theme;\nuse Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController;\nuse Symfony\\Component\\HttpFoundation\\Request;\nuse Symfony\\Component\\HttpFoundation\\Response;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\nclass ProjectController extends AbstractController\n{\n    #[Route('/', name: 'app_project_index', methods: ['GET'])]\n    public function index(\n        ProjectRepository $projectRepository,\n        GridBuilder $gridBuilder,\n    ): Response {\n        // get current user\n        $user = $this-\u003egetUser();\n        \n        // create query builder filtered by current user\n        $queryBuilder = $projectRepository-\u003ecreateQueryBuilder('p')\n            -\u003ewhere('p.owner = :user')\n            -\u003esetParameter('user', $user)\n            -\u003eorderBy('p.createdAt', 'DESC');\n        ;\n        $grid = $gridBuilder\n            -\u003einitialize(queryBuilder: $queryBuilder)\n            -\u003eaddColumn('Name', 'name')\n            -\u003eaddColumn(\n                'Created at',\n                'createdAt',\n                Template::DATETIME,\n                sortable: 'createdAt'\n            )\n            -\u003egetGrid()\n        ;\n\n\n        return $this-\u003erender('project/index.html.twig', [\n            'grid' =\u003e $grid\n        ]);\n    }\n}\n```\n\nThen with Symfony UX handy twig components :\n\n```twig\n{% extends 'base.html.twig' %}\n\n{% block body %}\n    \u003ch1\u003eProject list\u003c/h1\u003e\n\n    \u003ctwig:datagrid :grid=\"grid\" /\u003e\n{% endblock %}\n```\n\n\nOr a more classic twig approach :\n\n```twig\n{% extends 'base.html.twig' %}\n\n{% block body %}\n    \u003ch1\u003eProject list\u003c/h1\u003e\n\n    {% include grid.theme ~ '/datagrid.html.twig' %}\n{% endblock %}\n```\n\n\nDocumentation\n-------------\n\nYou can find a more advanced example on [how to generate your datagrid](docs/advanced-example.md).\n\nIf you want to customize the pagination, use the knp paginator configuration.\n\n```\n# config/packages/knp_paginator.yaml\nknp_paginator:\n    page_limit: 20   \n```\n\nIf you're using a datagrid inside a live component (symfony ux), [you'll need to do this](docs/advanced-example.md).\n\nRequirements\n------------\n\n- Symfony 6\n- PHP 8.2\n- Doctrine ORM\n\nRoadmap\n-------\n\n- Adding a Flex recipe\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibatic%2Fdatagrid-bundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkibatic%2Fdatagrid-bundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkibatic%2Fdatagrid-bundle/lists"}