evence/grid-bundle

提供简单的网格生成器

安装: 655

依赖者: 0

建议者: 0

安全: 0

星星: 1

观察者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

3.4.0 2019-07-29 13:10 UTC

This package is auto-updated.

Last update: 2024-08-29 05:56:31 UTC


README

生成网格的简单方法。

安装

  1. 将捆绑包添加到您的composer

    $ composer require evence/grid-bundle:dev-master 
  2. 将捆绑包添加到您的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'}}) }}