evence / grid-bundle
Provides an easy grid generator
Installs: 666
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.3
- symfony/framework-bundle: ~2.0 || ~3.0
Requires (Dev)
- doctrine/doctrine-bundle: ~1.2
- doctrine/orm: ~2.2,>=2.2.3
- phpunit/phpunit: 4.4.*
- symfony/console: ~2.0 || ~3.0
- symfony/options-resolver: ~2.0
- symfony/routing: ~2.0 || ~3.0
- twig/extensions: ~1.0
This package is auto-updated.
Last update: 2025-03-01 00:09:35 UTC
README
Easy method to generate a grid.
Installation
-
Add the bundle to your composer:
$ composer require evence/grid-bundle:dev-master
-
Add the bundle to your AppKernel.php:
new Evence\Bundle\GridBundle\EvenceGridBundle()
Grid withoud class
Add the following code to your controller:
$gridHelper = $this->get('evence.grid'); $grid = $gridHelper->createGridBuilder('EvenceOptinBundle:Supplier') ->addDataField('name', 'Name') -> addAction('edit', 'Edit supplier', 'evence_optin_supplier_edit', array(), array('ROLE_ADMIN'), array('icon' => 'pencil')) ->setMappedParameters(array('id')); return $gridHelper->gridResponse('EvenceCoreBundle:Admin:simple_grid.html.twig', array( 'grid' => $grid->createView()));
Grid within a class
namespace Acme\Bundle\DemoBundle\Grid; use Evence\Bundle\GridBundle\Grid\Grid; use Evence\Bundle\GridBundle\Grid\GridFieldConfigurator; use Evence\Bundle\GridBundle\Grid\GridActionConfigurator; use Evence\Bundle\GridBundle\Grid\GridFilterConfigurator; use Evence\Bundle\GridBundle\Grid\Filter\FilterMapper; class UserGrid extends Grid { public function getEntityName() { return 'EvenceCoreBundle:AdminUser'; } public function getOptions(){ return array('numbers' => false, 'checkbox' => false); } public function configureFields(GridFieldConfigurator $FieldConfigurator){ $FieldConfigurator ->addDataField('firstname', 'Firstname') ->addDataField('lastname', 'Lastname') ->addDataField('username', 'Username') ->addCustomField('fullname', 'Volledige naam', 'text', function($source, $field){ return $source->getFirstname(). ' ' . $source->getLastname(); }) ->addDataField('roles', 'Rollen', 'choice', array('choices' => AdminUser::getRoleTypes(), 'mapped' => false)); } public function getDataSourceType(){ return parent::DATA_SOURCE_ENTITY; } public function configureActions(GridActionConfigurator $actionConfigurator){ $actionConfigurator ->addAction('edit', 'Edit', 'admin_user_edit', array(),array('ROLE_ADMIN'), array('icon' => 'pencil', 'iconType' => 'fontawesome')) ->addAction('remove', 'Delete', 'admin_user_delete', array(),array('ROLE_ADMIN'), array('icon' => 'times', 'iconType' => 'fontawesome')); $actionConfigurator->setMappedParameters(array('id')); } /* * (non-PHPdoc) * @see \Evence\Bundle\GridBundle\Grid\Grid::configureFilter() */ public function configureFilter(GridFilterConfigurator $filterConfigurator) { $filterConfigurator->add('status', 'choice', [ 'choices' => Transaction::getStatusses() ]) ->add('dateFrom', 'datetime', []) ->add('dateTill', 'datetime', []); $fm = $filterConfigurator->getFilterMapper(); $fm->add(FilterMapper::gt('transactionAt', 'dateFrom'))->add(FilterMapper::lt('transactionAt', 'dateTill')); } }
Add the following code to your controller action:
$gridHelper = $this->get('evence.grid'); $grid = $gridHelper->createGrid(new UserGrid()); return $gridHelper->gridResponse('EvenceCoreBundle:Admin:user_read.html.twig', array('grid' => $grid->createView()));
Show grid in twig
Add the following code to your twig file:
{{ evenceGrid(grid, {'formAttributes': {'class': 'form'}}) }}