国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP 自動填充(自動完成)詳解及實例

2024-09-09 15:20:08
字體:
來源:轉載
供稿:網友

ThinkPHP 內置了數據對象的自動填充功能,可以用來處理默認值、數據過濾以及其他系統寫入字段的自動處理.

要使用自動填充功能,只需要在對應的 Model類 里面定義 $_auto 屬性(由多個驗證因子組成的數組),$_auto 屬性是由多個填充因子組成的數組,語法格式如下:

protected $_auto = array( array(填充字段,填充內容[,填充條件][,附加規則])};

填充因子 說明

填充字段 必須。需要填充的表單字段,這個字段不一定是數據庫字段,也可以是表單的一些輔助字段,例如驗證碼等。

填充內容 必須。要對字段自動填充的內容。

填充條件 可選。包括:

Model:: MODEL_INSERT 或者 1 :新增數據時候填充(默認)

Model:: MODEL_UPDATE 或者 2 :更新數據時候填充

Model:: MODEL_BOTH 或者 3 :全部情況下填充

附加規則 可選。包括:

string:字符串,表示填充內容為字符串(默認)

function:使用函數,表示填充的內容是一個函數返回值

callback:使用方法,表示填充的內容是一個當前 Model 的方法返回值

field:字段,表示填充的內容是一個其他字段的值

自動填充例子

用戶注冊或修改資料時,可能用到的自動填充例子:

  1. class UserModel extends Model{ protected $_auto = array ( // 新增的時候把status字段設置為1 array('status','1'), // 對password字段在所有情況下使用md5函數處理 array('password','md5',3,'function'), // 對username字段在新增時回調getName方法 array('username','getName',1,'callback'), // 對regdate字段在新增時寫入當前時間戳 array('regdate','time',1,'function'), // 對regip字段在新增時寫入用戶注冊IP地址 array('regip','get_client_ip',1,'function'), );} 
  2. 和自動驗證一樣,自動完成機制需要使用 create 方法才能生效: 
  3. $Article = D("User");if(!$User->create()){ // 如果創建數據對象失敗(可能是驗證未通過等),輸出錯誤提示信息 exit($Article->getError());}else{ // 繼續下一步流程如將數據寫入數據表} 

提示:與自動驗證不同的是,自動填充無效時(如調用一個不存在的函數或自動填充的字段不存在等)并不導致創建數據對象(create())失敗,只能通過調試或實際數據入庫來檢測自動填充是否正確有效.

動態改變自動完成規則

和自動驗證一樣,可以在操作方法中使用 setProperty方法 動態的更改自動完成的規則:

  1. $Dao = D("User");$auto = array ( // 僅對password字段進行處理 array('password','md5',1,'function') );$User->setProperty("_auto",$auto);if(!$User->create()){ ……} 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 鄄城县| 广宗县| 驻马店市| 望奎县| 西宁市| 邢台市| 谢通门县| 吴川市| 神池县| 雷山县| 涡阳县| 彰武县| 时尚| 崇明县| 金门县| 神木县| 桃源县| 闻喜县| 娄底市| 黔西县| 平陆县| 漠河县| 大宁县| 太谷县| 吉安市| 阿巴嘎旗| 永平县| 凭祥市| 岚皋县| 都江堰市| 玛纳斯县| 乐平市| 普定县| 加查县| 东乡| 洞口县| 朝阳区| 永泰县| 丘北县| 大城县| 汉阴县|