# 字段映射
ThinkPHP的字段映射功能可以讓你在表單中隱藏真正的數據表字段,而不用擔心放棄自動創建表單對象的功能,假設我們的User表里面有username和email字段,我們需要映射成另外的字段。
定義方式如下:
```php
namespace Home\Model;
use Think\Model;
Class UserModel extends Model{
protected $_map = array(
'name' =>'username', // 把表單中name映射到數據表的username字段
'mail' =>'email', // 把表單中的mail映射到數據表的email字段
);
}
```
這樣,在表單里面就可以直接使用name和mail名稱作為表單數據提交了。我們使用create方法創建數據對象的時候,會自動轉換成定義的實際數據表字段。
字段映射還可以支持對主鍵的映射。
使用字段映射后,默認不會對讀取的數據會自動處理,
```php
// 實例化User模型
$User = D('User');
$data = $User->find(3);
dump($data);
```
輸出結果類似:
```php
array(size=4)
'id' => int 3
'username'=> string 'thinkphp'(length=8)
'email' => string 'thinkphp@gmail.com' (length=18)
'status' => int 1
```
這個時候取出的data數據包含的是實際的username和email字段。
如果我們需要在數據獲取的時候自動處理的話,設置開啟READ_DATA_MAP參數,
```php
'READ_DATA_MAP'=>true
```
這個時候,輸出結果類似:
```php
array(size=4)
'id' => int 3
'name' => string 'thinkphp'(length=8)
'mail' => string 'thinkphp@gmail.com' (length=18)
'status' => int 1
```
或者直接使用parseFieldsMap方法進行轉換處理,例如:
```php
// 實例化User模型
$User = D('User');
$data = $User->find(3);
$data = $User->parseFieldsMap($data);
```
通過上面的兩種方式后,無論是find還是select方法讀取后的data數據中就包含了name和mail字段數據了,而不再有username和email字段數據了。
- 前言
- 基礎
- 關于MuuCmf
- 獲取MuuCmf
- 環境要求
- 目錄結構
- 安裝
- 開發規范
- 控制器
- 控制器定義
- 前置和后置操作
- AJAX返回
- Action參數綁定
- 偽靜態
- URL大小寫
- Url生成
- 跳轉和重定向
- 輸入變量
- 請求類型
- 空操作
- 空控制器
- 插件控制器
- 操作綁定到類
- 模型
- 模型的定義
- 模型實例化
- 字段定義
- 連接數據庫
- 切換數據庫
- 分布式數據庫支持
- 連貫操作
- WHERE
- TABLE
- ALIAS
- DATA
- FIELD
- ORDER
- LIMIT
- PAGE
- GROUP
- HAVING
- JOIN
- UNION
- DISTINCT
- LOCK
- CACHE
- COMMENT
- RELATION
- USING
- fetchSql
- TOKEN
- STRICT
- INDEX
- 命名范圍
- CURD操作
- 數據創建
- 數據寫入
- 數據讀取
- 數據更新
- 數據刪除
- ActiveRecord
- 字段映射
- 查詢語言
- 查詢方式
- 表達式查詢
- 快捷查詢
- 區間查詢
- 組合查詢
- 統計查詢
- SQL查詢
- 動態查詢
- 子查詢
- 自動驗證
- 自動完成
- 參數綁定
- 虛擬模型
- 模型分層
- 視圖模型
- 關聯模型
- 高級模型
- Mongo模型
- 視圖
- 模板定義
- 模板主題
- 模板賦值
- 模板渲染
- 獲取模板地址
- 獲取內容
- 模板引擎
- 模板
- 變量輸出
- 系統變量
- 使用函數
- 默認值輸出
- 使用運算符
- 標簽庫
- 模板繼承
- 修改定界符
- 三元運算
- 包含文件
- 內置標簽
- Volist標簽
- Foreach標簽
- For標簽
- Switch標簽
- 比較標簽
- 范圍判斷標簽
- IF標簽
- Present標簽
- Empty標簽
- Defined標簽
- Assign標簽
- Define標簽
- 標簽嵌套
- import標簽
- 使用PHP代碼
- 原樣輸出
- 模板注釋
- 模板布局
- 模板替換
- 模塊開發
- 模塊的定義
- 開發規范
- 后臺構建器Builder
- 安裝與卸載
- 插件開發
- REST API
- RESTAPI定義
- 后臺使用指南
- 二次開發指南
- 官方模塊手冊