necktie / 通讯录
领带通讯录捆绑包
Requires
- php: >=7
- dmishh/settings-bundle: dev-master
- nette/utils: ~2.3
- sensio/framework-extra-bundle: ^3.0
- symfony/framework-bundle: >=2.8
- trinity/framework: dev-master
- twig/extensions: >=1.3
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: 5.1.*
- symfony/var-dumper: ~3.0
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 等)。
- 创建过滤器
过滤器 -> 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.'.';
}
}
- 网格注册
文件:service.yml 标签:trinity.grid.filter
trinity.grid.filter.id: class: Trinity\Bundle\GridBundle\Filter\IdFilter tags: - {name: "trinity.grid.filter"}
-
为当前网格设置过滤器
$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。