Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kibatic/datagrid-bundle
Datagrid bundle for Symfony
https://github.com/kibatic/datagrid-bundle
php symfony
Last synced: 17 days ago
JSON representation
Datagrid bundle for Symfony
- Host: GitHub
- URL: https://github.com/kibatic/datagrid-bundle
- Owner: kibatic
- License: mit
- Created: 2022-05-25T12:09:28.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-31T10:49:09.000Z (5 months ago)
- Last Synced: 2024-11-30T00:44:37.003Z (24 days ago)
- Topics: php, symfony
- Language: PHP
- Homepage:
- Size: 89.8 KB
- Stars: 10
- Watchers: 5
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Kibatic Datagrid Bundle
=======================Datagrid bundle for Symfony with the following design philosophy : less magic for more flexibility.
It's not the usual one line datagrid generator, it's a more verbose but we think it's worth it.
Features
--------- Your entities in a table
- Pagination
- Sortable
- Filterable
- Actions (simple & batch)
- Customizable templates
- Only supports Doctrine ORM
- Theme (bootstrap 4 and 5)Quick start
-----------### Install the bundle
```bash
composer require kibatic/datagrid-bundle
```Add this to your `assets/controllers.json` :
```json
{
"controllers": {
"@kibatic/datagrid-bundle": {
"checker": {
"enabled": true,
"fetch": "eager"
}
}
}
```You'll most likely also need to enable this twig function : https://twig.symfony.com/doc/2.x/functions/template_from_string.html
### Basic usage
```php
getUser();
// create query builder filtered by current user
$queryBuilder = $projectRepository->createQueryBuilder('p')
->where('p.owner = :user')
->setParameter('user', $user)
->orderBy('p.createdAt', 'DESC');
;
$grid = $gridBuilder
->initialize($request, $queryBuilder)
->setTheme(Theme::BOOTSTRAP5) // optional, it's the default value
->addColumn('Name', 'name')
->addColumn(
'Created at',
'createdAt',
Template::DATETIME,
sortable: 'createdAt'
)
->getGrid()
;return $this->render('project/index.html.twig', [
'grid' => $grid
]);
}
}
```And the associated twig
```twig
{% extends 'base.html.twig' %}{% block body %}
Project list
{% include grid.theme ~ '/datagrid.html.twig' %}
{% endblock %}
```Documentation
-------------More information on [how to generate your datagrid](docs/advanced-example.md).
If you want to customize the pagination, use the knp paginator configuration.
```
# config/packages/knp_paginator.yaml
knp_paginator:
page_limit: 20
```If you're using a datagrid inside a live component (symfony ux), [you'll need to do this](docs/advanced-example.md).
Requirements
------------- Symfony 6
- PHP 8.2
- Doctrine ORMRoadmap
-------- Adding a Flex recipe
- Remove Bootstrap 4 and Sonata variant
- More column types and template options ?