很多情況下,我們把頁面表單中input的name設置為和數據表中字段名一樣,方便獲取和對數據庫進行操作。但是這樣存在一些安全隱患,為了避免字段名暴露,我們可以使用模型中的字段映射功能。
定義格式:
~~~
// 字段映射
protected $fieldsMap = array (
// '表單字段'=>'數據庫字段'
);
~~~
## 映射方法
### fromForm自動映射
調用fromForm時,如果所有驗證都成功,最后將會自動根據上面的定義進行映射。
### 手動執行映射
當然有時候也可以手動映射,手動把數據都set到模型中,最后執行一下映射即可。
格式:
~~~
parseFieldsMap([數據],[類型])
~~~
返回值是轉換后的數據。
> 注意:轉換后不會自動保存到模型中,如有需要請手動賦值:
~~~
$model->set($model->parseFieldsMap($data));
~~~
| 名稱 | 描述 |
| -- | -- |
| 數據 | 要被映射數據,留空則為模型中存儲的數據 |
| 類型 | 轉換類型。可選值請看下表。默認為Model::TO_DB |
類型:
| 類型名 | 描述 |
| -- | -- |
| Model::TO_DB | 表單字段轉數據庫字段 |
| Model::TO_FORM | 數據庫字段轉表單字段 |
## 例子
映射定義:
~~~
protected $fieldsMap=array(
'xingming' => 'name',
'nianling' => 'age'
);
~~~
### formForm用法
獲取規則定義:
~~~
protected $rules=array(
'reg'=>array(
// 都不驗證直接獲取
array('name'=>'xingming'),
array('name'=>'nianling'),
)
);
~~~
獲取數據:
~~~
$model->fromForm('reg');
~~~
模型中數據:
~~~
array(
'name' => '宇潤',
'age' => 5
)
~~~
### 手動映射用法
#### 轉為數據庫字段
~~~
$data1 = array(
'xingming' => '宇潤',
'nianling' => '5'
);
var_dump($model->parseFieldsMap($data1,Model::TO_DB));
~~~
輸出:
~~~
array (size=2)
'name' => string '宇潤' (length=6)
'age' => string '5' (length=1)
~~~
#### 轉為表單字段
~~~
$data2 = array(
'name' => '宇潤',
'age' => '5'
);
var_dump($model->parseFieldsMap($data2,Model::TO_FORM));
~~~
輸出:
~~~
array (size=2)
'xingming' => string '宇潤' (length=6)
'nianling' => string '5' (length=1)
~~~
- 序言
- 有些話想說
- 基礎入門
- 簡介
- 下載安裝YurunPHP
- 運行環境
- 開發規范
- 目錄結構
- 模塊
- 控制器
- 自動加載
- 手動加載
- 項目配置
- 入口文件
- 項目目錄結構
- 配置文件
- 驅動配置
- 數據庫配置
- 項目初始化處理
- 框架編譯
- 項目部署
- 控制器
- 創建控制器
- 加載模版顯示頁面
- AJAX返回數據
- 模型
- 創建模型
- 實例化模型
- 數據管理
- 連貫操作
- distinct
- field
- from
- where
- wherePk
- group
- having
- order
- limit
- join
- page
- headTotal/footTotal
- 連貫操作收尾方法
- select
- selectPage
- buildSQL
- selectValue
- selectBy
- getBy
- getByPk
- random
- inc
- dec
- add
- edit
- delete
- 合計函數
- save
- 執行SQL語句
- 創建數據并驗證
- 字段映射
- 增刪改查前置和后置
- Response類
- GET/POST/COOKIE/REQUEST
- Cookie
- Session
- 如何自定義Session存儲
- 數據庫操作
- 常用操作
- 查詢記錄
- 存儲過程
- 數據庫函數
- MSSQL
- 視圖
- 調用視圖
- 給視圖傳值
- 模版引擎
- 輸出
- 使用PHP代碼
- 模版標簽
- if
- switch
- for
- counter
- foreach
- include
- js/css/image
- url
- origin
- 模版常量替換
- 后臺視圖控件
- 通用屬性用法
- 數據集綁定
- 下拉框(select)
- 單選框(radio)
- 單選框組(radiogroup)
- 選擇框(checkbox)
- 選擇框組(checkboxgroup)
- 表格(table)
- 文本框(textbox)
- 分頁條(pagebar)
- 數據驗證
- 驗證方法
- between
- betweenEqual
- empty_str
- not_empty_str
- regex
- length
- lengthChar
- mobile
- tel
- phone
- postcode
- url
- ip
- lt/gt/ltEqual/gtEqual
- equal/unequal
- in/notin
- idcard
- 路由
- 路由配置
- 自定義分層
- 緩存
- 緩存配置
- 使用緩存
- 配置
- 配置驅動配置
- 使用配置
- 過濾域名
- 日志
- 日志驅動配置
- 文件日志
- 事件
- 事件列表
- 插件
- 多語言支持
- 定時任務
- API接口開發
- CLI命令行模式
- Soap WebService