evence / grid-bundle
提供简单的网格生成器
3.4.0
2019-07-29 13:10 UTC
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: 2024-08-29 05:56:31 UTC
README
生成网格的简单方法。
安装
-
将捆绑包添加到您的composer
$ composer require evence/grid-bundle:dev-master
-
将捆绑包添加到您的AppKernel.php
new Evence\Bundle\GridBundle\EvenceGridBundle()
无类的网格
将以下代码添加到您的控制器中
$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()));
类内的网格
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')); } }
将以下代码添加到您的控制器动作中
$gridHelper = $this->get('evence.grid'); $grid = $gridHelper->createGrid(new UserGrid()); return $gridHelper->gridResponse('EvenceCoreBundle:Admin:user_read.html.twig', array('grid' => $grid->createView()));
在twig中显示网格
将以下代码添加到您的twig文件中
{{ evenceGrid(grid, {'formAttributes': {'class': 'form'}}) }}