简介
字典映射组件用于将数据库中的键值映射为可读的显示内容,支持HTML格式和样式定义。
用法示例
基础用法
use plugin\xbCode\builder\Builder;
// 创建表格
Builder::crud(function($builder) {
// 添加映射列
$builder->addColumnMap('status', '状态', [
0 => '禁用',
1 => '启用'
]);
});
带样式的映射
Builder::crud(function($builder) {
// 带颜色标签的状态映射
$builder->addColumnMap('status', '订单状态', [
0 => '<span class="label label-default">待支付</span>',
1 => '<span class="label label-info">已支付</span>',
2 => '<span class="label label-success">已发货</span>',
3 => '<span class="label label-warning">已完成</span>',
4 => '<span class="label label-danger">已取消</span>'
]);
// 自定义配置
$builder->addColumnMap('type', '类型', [
1 => '普通用户',
2 => 'VIP用户',
3 => '超级VIP'
], function($component) {
$component->width(120);
$component->className('text-center');
});
});
使用数组方式配置
Builder::crud(function($builder) {
$builder->addColumnMap('level', '等级', [
'bronze' => '<span class="badge badge-warning">青铜</span>',
'silver' => '<span class="badge badge-secondary">白银</span>',
'gold' => '<span class="badge badge-primary">黄金</span>',
'diamond' => '<span class="badge badge-success">钻石</span>'
], [
'width' => 100,
'align' => 'center'
]);
});
组件参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|
| name | string | 必填 | 字段名称,对应数据库字段 |
| label | string | 必填 | 列标题,显示在表格头部 |
| mapping | array | 必填 | 映射关系数组,key为数据库值,value为显示内容 |
| option | callable|array | [] | 配置选项,可以是回调函数或数组 |
映射组件属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|
| map | array | - | 映射关系配置 |
| className | string | - | 外层 CSS 类名 |
| width | int|string | - | 列宽度 |
| align | string | center | 水平对齐方式(默认居中) |
| vAlign | string | middle | 垂直对齐方式(默认居中) |
使用场景
- 状态字段显示
- 类型字段映射
- 等级标识展示
- 分类标签显示
- 枚举值转换
注意事项
- mapping 参数是必填的,定义了键值对应关系
- 支持HTML格式的显示内容
- 可以使用 Bootstrap 或其他 CSS 框架的样式类
- 默认居中对齐显示
- 如果数据库值在映射表中找不到,会显示原始值