opwoco / datagrid-bundle
Fork of Symfony Datagrid Bundle
Installs: 586
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 343
Type:symfony-bundle
Requires
- php: >=5.6
- symfony/symfony: ~2.8|~3.0|^4.0
- twig/twig: >=1.5.0
Requires (Dev)
- doctrine/mongodb-odm: ^1.1.5
- doctrine/orm: ~2.4,>=2.4.5
- friendsofphp/php-cs-fixer: ^2.0
- phpunit/phpunit: ~5.7
- satooshi/php-coveralls: ^1.0
Suggests
- ext-intl: Translate the grid
- ext-mbstring: Convert your data with the right charset
- PHPExcel: Export the grid (Excel, HTML or PDF)
- doctrine/mongodb-odm: If you want to use Document as source, please require doctrine/mongodb-odm
- doctrine/orm: If you want to use Entity as source, please require doctrine/orm
Provides
- ext-mongo: 1.5
This package is not auto-updated.
Last update: 2024-12-21 21:19:42 UTC
README
Datagrid for Symfony2 inspired by Zfdatagrid and Magento Grid.
This bundle was initiated by Stanislav Turza (Sorien).
See CHANGELOG and UPGRADE 2.0
Features
- Supports Entity (ORM), Document (ODM) and Vector (Array) sources
- Sortable and Filterable with operators (Comparison operators, range, starts/ends with, (not) contains, is (not) defined, regex)
- Auto-typing columns (Text, Number, Boolean, Array, DateTime, Date, ...)
- Locale support for DateTime, Date and Number columns (Decimal, Currency, Percent, Duration, Scientific, Spell out)
- Input, Select, checkbox and radio button filters filled with the data of the grid or an array of values
- Export (CSV, Excel, PDF, XML, JSON, HTML, ...)
- Mass actions
- Row actions
- Supports mapped fields with Entity source
- Securing the columns, actions and export with security roles
- Annotations and PHP configuration
- External filters box
- Ajax loading
- Pagination (You can also use Pagerfanta)
- Column width and column align
- Prefix translated titles
- Grid manager for multi-grid on the same page
- Groups configuration for ORM and ODM sources
- Easy templates overriding (twig)
- Custom columns and filters creation
- ...
Documentation
See the summary.
Screenshot
Full example with this CSS style file:
Simple example with the external filter box in english:
Same example in french:
Data used in these screenshots (this is a phpMyAdmin screenshot):
Simple grid with an ORM source
<?php namespace MyProject\MyBundle\Controller; use APY\DataGridBundle\Grid\Source\Entity; class DefaultController extends Controller { public function myGridAction() { // Creates a simple grid based on your entity (ORM) $source = new Entity('MyProjectMyBundle:MyEntity'); // Get a Grid instance $grid = $this->get('grid'); // Attach the source to the grid $grid->setSource($source); // Return the response of the grid to the template return $grid->getGridResponse('MyProjectMyBundle::myGrid.html.twig'); } }
Simple configuration of the grid in the entity
<?php namespace MyProject\MyBundle\Entity use Doctrine\ORM\Mapping as ORM; use APY\DataGridBundle\Grid\Mapping as GRID; /** * @GRID\Source(columns="id, my_datetime") */ class MyEntity { /* * @ORM\Column(type="integer") */ protected $id; /* * @ORM\Column(type="datetime") */ protected $my_datetime; }
Display the grid in a twig template
<?php <!-- MyProject\MyBundle\Resources\views\myGrid.html.twig --> {{ grid(grid) }}
And clear your cache.