evence/grid-bundle
最新稳定版本:3.4.0
Composer 安装命令:
composer require evence/grid-bundle
包简介
Provides an easy grid generator
README 文档
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'}}) }}
统计信息
- 总下载量: 668
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-12-30