northernco/datagrid-bundle

Symfony 数据网格组件

5.0.0 2023-10-18 15:00 UTC

README

受 Zfdatagrid 和 Magento Grid 启发的 Symfony 数据网格组件。

此组件由 Stanislav Turza (Sorien) 创始。

功能

  • 支持实体(ORM)、文档(ODM)和向量(数组)数据源
  • 可排序和过滤,支持运算符(比较运算符、范围、以...开头/结尾、(不)包含、是否(不)定义、正则表达式)
  • 自动类型化列(文本、数字、布尔值、数组、日期时间、日期、...)
  • 支持 DateTime、Date 和 Number 列的本地化(小数、货币、百分比、持续时间、科学记数、文字表达)
  • 输入、选择、复选框和单选按钮过滤器,使用网格数据或值数组填充
  • 导出(CSV、Excel、PDF、XML、JSON、HTML、...)
  • 批量操作
  • 行操作
  • 支持实体数据源中的映射字段
  • 使用安全角色保护列、操作和导出
  • 注解和 PHP 配置
  • 外部过滤器框
  • Ajax 加载
  • 分页(您也可以使用 Pagerfanta)
  • 列宽和列对齐
  • 翻译标题前缀
  • 同一页面上的多网格网格管理器
  • ORM 和 ODM 数据源的组配置
  • 易于模板覆盖(twig)
  • 自定义列和过滤器创建
  • ...

文档

查看摘要

截图

包含此CSS 样式文件的完整示例

test

英文的外部过滤器框简单示例

test

法语的相同示例

test

这些截图中使用的数据(这是 phpMyAdmin 的截图)

test

简单的 ORM 数据源网格

<?php

namespace MyProject\MyBundle\Controller;

use APY\DataGridBundle\Grid\Source\Entity;

class DefaultController extends Controller
{
	public function myGridAction()
	{
		// Creates a simple grid based on your entity (ORM)
		$source = new Entity('MyProjectMyBundle:MyEntity');

		// Get a Grid instance
		$grid = $this->get('grid');

		// Attach the source to the grid
		$grid->setSource($source);

		// Return the response of the grid to the template
		return $grid->getGridResponse('MyProjectMyBundle::myGrid.html.twig');
	}
}

在实体中简单配置网格

<?php

namespace MyProject\MyBundle\Entity

use Doctrine\ORM\Mapping as ORM;
use APY\DataGridBundle\Grid\Mapping as Grid;

/**
 * @Grid\Source(columns="id, my_datetime")
 */
class MyEntity
{
	/*
	 * @ORM\Column(type="integer")
	 */
	protected $id;

	/*
	 * @ORM\Column(type="datetime")
	 */
	protected $my_datetime;
}

在 twig 模板中显示网格

<?php
<!-- MyProject\MyBundle\Resources\views\myGrid.html.twig -->

{{ grid(grid) }}

并清除您的缓存。