日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例

發布時間:2025/3/19 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ThinkPHP 自動填充

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

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

protected $_auto = array(

array(填充字段,填充內容[,填充條件][,附加規則])

};

ThinkPHP自動填充格式說明:

填充因子

說明

填充字段

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

填充內容

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

填充條件

可選。包括:

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

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

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

附加規則

可選。包括:

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

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

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

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

自動填充例子

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

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'),

);

}

和自動驗證一樣,自動完成機制需要使用 create 方法才能生效:

$Article = D("User");

if(!$User->create()){

// 如果創建數據對象失敗(可能是驗證未通過等),輸出錯誤提示信息

exit($Article->getError());

}else{

// 繼續下一步流程如將數據寫入數據表

}

提示

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

動態改變自動完成規則

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

$Dao = D("User");

$auto = array (

// 僅對password字段進行處理

array('password','md5',1,'function')

);

$User->setProperty("_auto",$auto);

if(!$User->create()){

……

}

M方法中使用自動填充功能

充分利用功能強大的 ThinkPHP 自動填充(自動完成)功能,能夠快捷簡便的構建表單入庫數據,程序結構也會更加明晰。

總結

以上是生活随笔為你收集整理的php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。