# 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
- 目錄結構
- 開發規范
- 插件
- 系統鉤子列表
- 插件開發
- 主題
- 新建主題
- 模板變量
- 模板標簽
- 附錄
- 網站配置
- 常見問題
- 更新日志
- 關于零云