Skip to content

CatchTable 构建

创建表格

要创建一个表格,请使用 API 端点实例化 Table 类:

php
use CatchForm\Table\Table;

$table = new Table('https://api.example.com/data');

配置表格属性

您可以使用流畅的方法配置表格的各种属性。以下是一些常见的配置示例:

设置表格高度

php
$table->height('400px'); // 设置表格的高度。

设置表格边框

php
$table->border('1px solid #ccc'); // 设置表格的边框样式。

设置分页

php
$table->pagination(true) // 启用分页。
      ->limit(10) // 设置每页的项目数量。
      ->page(1); // 设置当前页码。

设置尺寸

php
$table->size('large'); // 设置表格的尺寸(例如:'large'、'small')。

添加列

您可以使用 column 方法在表格中定义列:

php
$table->column('姓名', 'name') // 添加一个标签为 '姓名',属性为 'name' 的列。
      ->column('邮箱', 'email'); // 添加一个标签为 '邮箱',属性为 'email' 的列。

搜索功能

表单构建器允许您为表格添加搜索功能:

php
$table->isShowSearch(true); // 启用搜索功能。
$table->input('按姓名搜索', 'name'); // 添加一个用于按姓名搜索的输入框。
$table->select('按状态过滤', 'status'); // 添加一个用于按状态过滤的选择框。

JSON 序列化

Table 类实现了 JsonSerializable 接口,允许您轻松将表格配置转换为 JSON 格式:

php
$json = json_encode($table); // 将表格配置转换为 JSON 格式。

可用方法

方法描述
height(string $height)设置表格的高度。
border(string $border)设置表格的边框样式。
size(string $size)设置表格的尺寸(例如:'large'、'small')。
pagination(bool $pagination)启用或禁用分页。
limit(int $limit)设置每页的项目数量。
page(int $page)设置当前页码。
layout(string $layout)设置表格的布局。
sort(array $sort)设置表格的排序选项。
showOperation(bool $isShow)显示或隐藏表格中的操作。
showTools(bool $isShow)显示或隐藏工具栏。
primaryName(string $name)设置主键名称。
rowKey(string $key)设置表格的行键。
defaultParams(array $params)设置表格的默认参数。
destroyConfirm(string $text)设置删除操作的确认文本。
dialog($width, string $height)设置对话框的宽度和高度。
export(string $url, bool $isShow)配置导出功能。
isShowSearch(bool $isShow)显示或隐藏搜索功能。
columns(Closure $fn)使用闭包定义列。
filter(Closure $fn)使用闭包定义过滤器。
jsonSerialize()将表格属性序列化为 JSON。
column(string $label, string $props = '')向表格添加列。
search(string $label)创建一个搜索输入框。
input(string $label, string $name)添加一个输入搜索字段。
select(string $label, string $name)添加一个选择搜索字段。
number(string $label, string $name)添加一个数字搜索字段。
date(string $label, string $name)添加一个日期搜索字段。
datetime(string $label, string $name)添加一个日期时间搜索字段。
range(string $label, string $name, array $children)添加一个范围搜索字段。

示例

以下是如何创建一个具有各种配置的表格的完整示例:

php
use CatchForm\Table\Table;

$table = new Table('https://api.example.com/data');

$table->height('400px') // 设置表格的高度。
      ->border('1px solid #ccc') // 设置表格的边框样式。
      ->pagination(true) // 启用分页。
      ->limit(10) // 设置每页的项目数量。
      ->page(1) // 设置当前页码。
      ->size('large') // 设置表格的尺寸。
      ->showTools(true) // 显示工具栏。
      ->primaryName('id') // 设置主键名称。
      ->isShowSearch(true) // 启用搜索功能。
      ->input('按姓名搜索', 'name') // 添加一个用于按姓名搜索的输入框。
      ->select('按状态过滤', 'status') // 添加一个用于按状态过滤的选择框。
      ->column('姓名', 'name') // 添加一个标签为 '姓名' 的列。
      ->column('邮箱', 'email'); // 添加一个标签为 '邮箱' 的列。

$json = json_encode($table); // 将表格配置转换为 JSON 格式。