pdgrid/grid

PHP 数据网格小部件

dev-master 2020-03-02 13:15 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:30 UTC


README

使用 Bootstrap、Jquery 和 Zend_Db 的 PHP 数据网格小部件

该组件是一个用于后台的网格(表格)组件,用于以表格形式显示元素列表,具有排序、过滤、分页导航、创建、编辑和删除元素的链接等功能

使用方法

创建一个网格,通过构造函数传递必要的参数(见下文 参数列表

use pdgrid\Grid;
$grid = new Grid( <ассоциативный массив с параметрами> );

并在页面上的合适位置输出网格

echo $grid->render();

如果是 AJAX 请求,则调用方法 ajax,该方法将返回所有必要的数据并完成执行

$grid->ajax();

参数列表

数据

  • data - 已准备好的数据数组(在这种情况下,网格不会执行排序和过滤,您应传递已排序和过滤的数组。网格仅执行分页。)

或者

  • select - Zend_Db_Select 查询,从中将生成 sql 和 sqlcount 参数

或者

  • sql - 获取元素的查询

  • sqlcount - 获取元素数量的查询,如果未指定,则为空,默认情况下采用 sql 查询

     **!! ВАЖНО** : В случае использование фильтров, укажите в запросах подстановочный параметр {where},
     вместо которого будут вставлено условие фильтрации
     Не используйте ORDER (сортировку) в запросах, т.к. грид сам подставляет
     в конец запроса предложение ORDER - это вызовет ошибку.
    

数据获取和操作按钮的 URL

  • url - 包含网格输出的页面基本 URL,它将被用于分页导航、排序和过滤的链接,不应包含 page、sort 和 filter 参数,因为它们将被网格添加。

  • ajax - AJAX 请求的基本 URL

  • add - 创建元素的链接

  • edit - 编辑元素的链接

  • delete - 删除元素的链接

  • ajax-delete - 删除链接(AJAX),操作链接可以使用占位符参数

     - {id} - ID элемента (при редактировании или удалении)
     - {returnUrl} - URL адрес текущей страницы с гридом для возврата
    

显示参数

  • paging - 每页元素数量,默认为 10。如果指定为 0 或 false,则所有元素将显示在单个页面上,禁用分页
  • rownum - 是否在每行左侧显示行号,默认:是
  • footer - 是否显示包含信息的底部行
  • columns - 表格列的描述,关联数组,键为查询的列名,值为列的参数数组(见 列参数
  • multisort - 是否可以同时对多个列进行排序
  • sort - 默认排序,也可以指定对不可排序字段的排序,这将始终生效。
     'sort' => [
          'name' => 'asc|desc'
       ]
    
  • group - 根据列中的值对行进行分组,默认为 false(无分组)。如果需要分组,应指定数组
    [
       'column' => '<название столбца>',
       'format' => <Формат вывода ячейки заголовка группы> - это может быть строка с именем функции,
                      просто строка с подставляемыми значениями или массив
                       (см. описание format в параметрах столбца)
       'edit' => URL ссылки редактирования, необязательно
       'delete' => URL ссылки на удаление группы, необязательно
       'ajax-delete' => URL ссылки на удаление группы (AJAX), необязательно
    ]
    
  • actions - 额外的操作按钮(显示在最后一列)

列参数

  • title - 列名,显示在表格标题中
  • width - 宽度,像素数(对于图像 - 最大图像宽度),默认为自动宽度按内容
  • style - 应用于列单元格的 CSS 样式(除标题外),可以是字符串或数组
  • nowrap - 在一行中输出值(禁止换行)
  • align - 水平对齐:left、right 或 center(默认:left)
  • format - 定义在此列中如何输出值,默认为常规输出(见 输出格式
  • href - 链接 URL,可以使用 {列名} 参数插入查询中的值
  • hrefTarget - 如果使用 href,则指定链接的目标
  • sort - 是否可以对此列进行排序(true|false,默认 false),如果排序由数据库中不同的字段执行,而不是键中指定的字段,请在此处指定 SQL 查询中的列名。还可以指定数组,如果需要按多个字段排序
  • filter - 对此列的过滤器类型(默认 - 无过滤器),见 过滤器类型

输出格式

  • img - 输出从指定链接的图像
  • checkbox - 输出开关复选框
  • datetime - 输出格式化的日期/时间
  • 数组 - 将输出数组的键对应的值
  • 函数 - 如果指定了函数或方法名,将输出其调用的结果。函数的第一个参数是列的值

在其他情况下,值将被解释为 sprintf 函数的字符串格式。在格式字符串中,您也可以使用参数 {列名} 来插入查询中的值


___尚未实现:___ - date (日期) - time (时间 HH:MM:SS) - shorttime (时间 HH:MM) - dateperiod (日期范围) - period (日期/时间范围) - timeperiod (时间范围)

过滤器类型

  • text - 按子串搜索
  • select - 从多个值中选择一个,列表从属性 format 中获取,该属性应为数组
  • dateRange - 按日期范围过滤

所有过滤器都由从基本 Filter 继承的单独类表示