Datagrid for Symfony2 inspired by Zfdatagrid and Magento Grid.
This bundle was initiated by Stanislav Turza (Sorien).
See CHANGELOG and UPGRADE 2.0
- 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
- ...
See the summary.
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):
<?phpnamespaceMyProject\MyBundle\Controller;
useAPY\DataGridBundle\Grid\Source\Entity;
class DefaultController extends Controller
{
publicfunctionmyGridAction()
{
// Creates a simple grid based on your entity (ORM)$source = newEntity('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 templatereturn$grid->getGridResponse('MyProjectMyBundle::myGrid.html.twig');
}
}<?phpnamespaceMyProject\MyBundle\EntityuseDoctrine\ORM\MappingasORM;
useAPY\DataGridBundle\Grid\MappingasGRID;
/** * @GRID\Source(columns="id, my_datetime") */class MyEntity
{
/* * @ORM\Column(type="integer") */protected$id;
/* * @ORM\Column(type="datetime") */protected$my_datetime;
}<?php
<!-- MyProject\MyBundle\Resources\views\myGrid.html.twig -->
{{ grid(grid) }}And clear your cache.




