necktie/通讯录

领带通讯录捆绑包

dev-master / 1.0.x-dev 2016-01-15 12:43 UTC

This package is not auto-updated.

Last update: 2024-09-18 18:24:21 UTC


README

#Trinity Grid

Trinity grid 是 Trinity 包的一部分。

描述

  • 将实体数组转换为字符串数组。
  • 将字符串数组转换为 JSON

##文档

###1) 创建网格

创建继承自 BaseGrid 的类。添加用于更改属性值的模板。

class ProductGrid extends BaseGrid
{
    public function setUp()
    {
        $this->addTemplate("ProductGrid.html.twig");
    }
}

####设置 addTemplate - 添加新的模板以更改值。setColumnFormat - 用于基本更改日期或简单文本编辑的值。

模板

cell_attributeName 用于更改值。

{% block cell_name %} Template edit - {{ value }} {% endblock %}

可用的变量有:- value - row - 实体对象

###2) 注册网格

文件:services.yml

services:
  trinity.grid.test.product:
    class: Trinity\Bundle\GridBundle\Tests\Functional\Grid\ProductGrid
    tags:
        - { name: trinity.grid, alias: product }

标签名称:trinity.grid
别名是搜索网格的实体名称的强制值。

产品实体具有产品别名。

####网格过滤器

过滤器用于更改属性值。

#####特殊网格

特殊过滤器用于更改特定属性(id、name 等)。

  1. 创建过滤器

过滤器 -> BaseFilter 或 FilterInterface!

属性 'name' 是必需的!

class IdFilter extends BaseFilter
{

    /**
     * @var string
     */
    protected $name = 'id';


    /**
     * @param string|object|int|bool $input
     * @param array $arguments
     * @return string
     */
    function process($input, array $arguments = []) : string
    {
        return $input.'.';
    }
}
  1. 网格注册

文件:service.yml 标签:trinity.grid.filter

trinity.grid.filter.id: class: Trinity\Bundle\GridBundle\Filter\IdFilter tags: - {name: "trinity.grid.filter"}

  1. 为当前网格设置过滤器

    $this->setColumnFilter('id', 'id');

第一个属性 'id' -> 列名。

第二个属性 -> 过滤器名称。

#####全局过滤器

对于全局过滤器,必须将属性 'global' 设置为 TRUE;

属性 'name' 不是必需的。

class ObjectFilter extends BaseFilter
{
    protected $global = true;
 
    /**
     * @param string|object|int|bool $input
     * @param array $arguments
     * @return string
     */
    function process($input, array $arguments = []) : string
    {

        if ((is_object($input) && method_exists($input, 'getName'))) {
            $input = $input->getName();
        } elseif (is_object($input)) {
            $input = (string)$input;
        }

        return $input;
    }
}

###3) 将实体数组解析为字符串数组

从容器中提取服务 'trinity.grid.manager'

$manager = $container->get('trinity.grid.manager');

解析实体数组

$stringArray = $manager->convertEntitiesToArray(
            $this->getArrayOfEntities(),                                        // array of entities
            ['id', 'name', 'description', 'nonexistentColumn', 'createdAt']     // columns
        );

从实体名称中找到网格。$stringArray 必须转换为 JSON。