pdima88/pdgrid

使用 Zend Db v1 的 PHP 数据网格小部件

dev-master 2020-02-07 11:36 UTC

This package is auto-updated.

Last update: 2024-09-07 21:26:10 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 的单独类表示