字典映射

简介

字典映射组件用于将数据库中的键值映射为可读的显示内容,支持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'
  ]);
});

组件参数

参数名类型默认值说明
namestring必填字段名称,对应数据库字段
labelstring必填列标题,显示在表格头部
mappingarray必填映射关系数组,key为数据库值,value为显示内容
optioncallable|array[]配置选项,可以是回调函数或数组

映射组件属性

属性名类型默认值说明
maparray-映射关系配置
classNamestring-外层 CSS 类名
widthint|string-列宽度
alignstringcenter水平对齐方式(默认居中)
vAlignstringmiddle垂直对齐方式(默认居中)

使用场景

  • 状态字段显示
  • 类型字段映射
  • 等级标识展示
  • 分类标签显示
  • 枚举值转换

注意事项

  1. mapping 参数是必填的,定义了键值对应关系
  2. 支持HTML格式的显示内容
  3. 可以使用 Bootstrap 或其他 CSS 框架的样式类
  4. 默认居中对齐显示
  5. 如果数据库值在映射表中找不到,会显示原始值