# addTableColumn
用来添加数据列表一列
## 方法原型
function addTableColumn($name, $title, $type = null, $param = null, $width = null){}
## 参数:
| 参数 | 类型 | 是否必须 | 说明 |
| ------------ | ------------ | ------------ | ------------ |
| $name | string | 是 | 字段名称,一般情况下与数据库字段名一致 |
| $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的类型由英文转换为中文显示
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;
}
}
```
- 序言
- 基础
- 安装
- 开发规范
- 目录结构
- 表单生成器
- setMetaTitle
- setTabNav
- setExtraItems
- setPostUrl
- addFormItem
- setFormData
- setExtraHtml
- setAjaxSubmit
- setTemplate
- 表格生成器
- setMetaTitle
- addTopButton
- addTableColumn
- setTableDataList
- setTableDataListKey
- addRightButton
- setTableDataPage
- setSearch
- setTabNav
- addSearchItem
- alterTableData
- setExtraHtml
- setTemplate
- 公共函数
- 后台管理
- 系统功能
- 系统设置
- 导航管理
- 幻灯管理
- 配置管理
- 上传管理
- 用户权限
- 用户管理
- 管理员管理
- 用户组管理
- 扩展中心
- 功能模块
- 插件管理
- 模块
- opencmf.php
- 目录结构
- 开发规范
- 插件
- 系统钩子列表
- 插件开发
- 主题
- 新建主题
- 模板变量
- 模板标签
- 附录
- 网站配置
- 常见问题
- 更新日志
- 关于零云