# 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開發者賬戶
- 多主題開發
- 新建主題
- 目錄結構
- 模板變量
- 定制安裝部署