# text
Text栏是最常用的列, 用于显示列数据
## 方法原型:
```
/**
* @param string $name 字段名, 支持复杂结构的多级操作, 以英文句号分隔, 如: 'city.name'
* @param string $title 标题
* @param string $type 类型, 为空时默认为text类型
* @param array $option 显示的值映射, 用于将值转换为对应要显示的值, 如 [1 => '启用', 2=>'禁用']
* @param string $default 默认值
* @param array $attr 触发器等其他属性: {
* trigger: {key: value}, // 用于控制当前列是否显示, value可以是一个数组, 若传了trigger参数, 只有当前行数据中出现在value中时才显示
* }
*/
addColumn($name, $title, $type = 'text', $option = '', $default = '', $attr = [])
```
## 调用方式:
```
return SBuilder::make('table')
->addColumn('name', '姓名')
->fetch();
```
或
```
return SBuilder::make('table')
->addColumns([
['name', '姓名'],
... // 其他列
])
->fetch();
```
> 页面效果:
> ![](https://img.kancloud.cn/41/2f/412fc36f384d4ca6fa020cebef1a1950_681x311.png)
- 复杂结构支持
如用户行数据结构为:
```json
{
id: 1,
name: 'Finay',
sex: 1,
city: {
id: 1001,
name: '深圳',
}
}
```
要直接在列表中展示用户城市, 可用如下用法:
```
return SBuilder::make('table')
->addColumn('city.name', '城市名')
->fetch();
```
- 数据展示转换
如上面的数据中, 要把性别展示为1对应男, 2对应女,需要使用option参数:
```
return SBuilder::make('table')
->addColumn('sex', '性别', '', ['1' => '男', '2' => '女'])
->fetch();
```
- 触发器
可使用触发器控制行数据是否在当前列显示, 如上main的数据中, 若要id为1,2,3才显示`name`:
```
return SBuilder::make('table')
->addColumn('name', '姓名', '', '', '', [
'trigger' => ['id' => [1,2,3]]
])
->fetch();
```
> 注意: 当trigger中存在多个字段的条件时, 判断关系为或的关系,若需要其他复杂关系处理, 请在获取列表逻辑中直接处理。