# addTableColumn
用来添加数据列表一列
## 方法原型
function addTableColumn($name, $title, $type = null, $param = null, $width = null){}
## 参数:
| 参数 | 类型 | 是否必须 | 说明 |
| ------------ | ------------ | ------------ | ------------ |
| $name | string | 是 | 字段名称,一般情况下与数据库字段名一致,现支持`project_info.user_info.nickname`格式的多维数据显示 |
| $title | string | 是 | 列标题,就是生成页面列表的那一列的标题 |
| $type | string | 否 | 自动在生成页面前对数据进行处理,默认值是text,即原封不动,可以设置的值列表如下 |
| $param | string或array | 否 | 如果$type设为为callback,则必须设置此项 |
| $width | string | 否 | 表格列宽度:满足自定义表格列宽度的需求,使用实例:->addTableColumn('title', '标题', '', '', '20%') |
### $type可设置的值
status : 会将1,0,-1转换成fa图标
byte : 会将字节数转换为以KB为单位
icon : 会显示为fa图标
date : 会将int格式的数字转换为日期如2016-02-26
datetime : 会将int格式的数字转换为日期如2016-02-26 12:12:12
avatar : 会将图片的ID转化为图片显示(与picture相比此项多了固定的图片宽高40X40)
picture : 会将图片的ID转化为图片显示
pictures : 会将一组图片的ID转化为一组图片显示
type : Formbuilder的内置的表单类型由英文名转换为中文显示,比如textarea显示为多行文本,此项目一般用不到
quickedit : 【lyphp>=1.8.0】支持在列表快速编辑数据,比如列表项目的排序
prefix : 【lyphp>=1.8.0】为数据加上前缀,比如金额888显示为$888
suffix : 【lyphp>=1.8.0】为数据加上后缀,比如88显示为88%
progress : 【lyphp>=1.8.0】显示一个进度条,需要在param第四个参数输入百分比
callback : 回调,为了满足更多自定义的数据转换,特设置了回调方式供大家自定义,该项需要配合第四个参数一起使用
### $param可设置的值
该参数可以有两种写法:
1. 该参数是一个公共函数的名称及是一个字符串比如: ->addTableColumn('type', '类型', 'callback', 'get_book_title'), 那需要在common.php里有一个同名的函数get_book_title
2. 该参数是一个数组时,比如->addTableColumn('type', '类型', 'callback', array(D('FriendlyLink'), 'link_type')),那么link_type是FriendlyLinkModel.class.php里的一个public方法。
> 推荐大家使用第二种方法,能把方法放进类里就放进类里以便于结构清晰。
#### 用法示例
// 使用Builder快速建立列表页面。
$builder = new \Common\Builder\ListBuilder();
->addTableColumn('type', '类型', 'callback', array(D('FriendlyLink'), 'link_type'))
对应的FriendlyLinkModel.class.php里的回调方法如:
```php
// +----------------------------------------------------------------------
namespace Cms\Model;
use Think\Model;
/**
* 友情链接模型
* @author jry <598821125@qq.com>
*/
class FriendlyLinkModel extends Model {
/**
* 模块名称
* @author jry <598821125@qq.com>
*/
public $moduleName = 'Cms';
/**
* 数据库真实表名
* 一般为了数据库的整洁,同时又不影响Model和Controller的名称
* 我们约定每个模块的数据表都加上相同的前缀,比如微信模块用weixin作为数据表前缀
* @author jry <598821125@qq.com>
*/
protected $tableName = 'cms_friendly_link';
/**
* 自动验证规则
* @author jry <598821125@qq.com>
*/
protected $_validate = array(
array('title', 'require', '标题不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
array('title', '1,80', '标题长度为1-80个字符', self::EXISTS_VALIDATE, 'length'),
array('title', '', '标题已经存在', self::VALUE_VALIDATE, 'unique', self::MODEL_BOTH),
array('url', 'require', '链接不能为空', self::MUST_VALIDATE, 'regex', self::MODEL_BOTH),
array('url', '1,255', '链接长度为1-25个字符', self::EXISTS_VALIDATE, 'length'),
array('url', '', '链接已经存在', self::VALUE_VALIDATE, 'unique', self::MODEL_BOTH),
);
/**
* 自动完成规则
* @author jry <598821125@qq.com>
*/
protected $_auto = array(
array('create_time', 'time', self::MODEL_INSERT, 'function'),
array('update_time', 'time', self::MODEL_BOTH, 'function'),
array('status', '1', self::MODEL_INSERT),
);
/**
* 链接类型
* @author jry <598821125@qq.com>
*/
public function link_type($id) {
$list['1'] = '友情链接';
$list['2'] = '合作伙伴';
return $id ? $list[$id] : $list;
}
}
```
- 简介
- 环境要求
- 安装系统
- 目录结构
- 常见问题
- 基础知识
- 编辑器
- 前端规范
- 前端框架文档
- Builder教程
- Builder的来历
- ListBuilder使用
- setMetaTitle
- addTopButton
- setSearch
- addSearchItem
- setTabNav
- addTableColumn
- setTableDataList
- setTableDataListKey
- setTableDataPage
- addRightButton
- alterTableData
- setExtraHtml
- setTemplate
- FormBuilder使用
- setMetaTitle
- setTabNav
- setExtraItems
- setPostUrl
- addFormItem
- setFormData
- setExtraHtml
- setAjaxSubmit
- setTemplate
- 扩展FormBuilder
- 模块开发
- 创建模块
- 描述文件
- 模型( M )
- 模版( V )
- 控制器( C )
- API接口
- 核心模块
- 文件上传
- 微信小程序模块
- 注册登陆接口
- 钱包模块
- 统一支付
- Cms模块
- 幻灯片接口
- 文档列表接口
- 文档详情接口
- 发表评论接口
- 评论列表接口
- 收藏的文档接口
- 收藏接口
- 分类列表接口
- IM模块
- 发送消息接口
- 最近聊天列表接口
- 查询新消息接口
- 插件相关
- 短信插件
- 支付插件
- 支付宝支付
- 微信支付
- 站群模块
- 模板开发
- 准备工作
- 目录结构
- 数据调用
- 专题
- 插件开发
- 图片显示
- 获取用户信息
- 判断用户登陆
- 表单提交AjaX
- 文件上传
- 2.0兼容写法
- 模板标签
- 核心模块
- Cms模块
- 栏目分类调用
- Cordova
- 配置跨域支持
- 本地开发调试教程
- 打包成apk和ipa
- 自定义APP信息
- 常见问题
- 申请Apple开发者账户
- 多主题开发
- 新建主题
- 目录结构
- 模板变量
- 定制安装部署