pdgrid / grid
PHP 数据网格小部件
dev-master
2020-03-02 13:15 UTC
Requires
- nette/utils: ^3.1
- simple-php/assets: dev-master
- simple-php/composer-assets-plugin: dev-master
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 继承的单独类表示