來源:互聯網
上載者:User
關鍵字
ThinkPHP
自動完成
函數
回調
方
本文執行個體講述了ThinkPHP自動完成中使用函數與回調方法。分享給大家供大家參考。具體方法如下:
ThinkPHP 自動填滿格式如下:
代碼如下:
array(填充欄位,填充內容[,填充條件][,附加規則])
附加規則,可選,包括:
string:字串,表示填充內容為字串(預設)。
function:使用函數,表示填充的內容是一個函數傳回值。
callback:使用方法,表示填充的內容是一個當前 Model 的方法傳回值。
field:欄位,表示填充的內容是一個其他欄位的值。
ThinkPHP 自動填滿使用函數function
當附加規則使用函數function填充時,表示填充的內容是一個函數傳回值,這個函數可以是PHP內建函數或使用者自訂函數.
使用函數填充例子:
代碼如下:
class UserModel extends Model{
protected $_auto = array (
// 對password欄位在所有情況下使用md5函數處理
array('password','md5',3,'function'),
// 對regdate欄位在新增時寫入目前時間戳
array('regdate','time',1,'function'),
// 對regip欄位在新增時寫入使用者註冊IP地址
array('regip','get_client_ip',1,'function'),
// 對username欄位在新增時使用自訂getName函數
array('username','get_name',1,'function'),
);
}
在上面的例子中,使用的 md5 和 time 為 PHP 內建函數,填充結果為 md5($_POST['password']) 值和 time() 函數值,get_client_ip 和 get_name 為 Common/common.php 自訂函數.
get_name 函數將使用者名稱加上 th_ 首碼,參考如下:
代碼如下:
function get_name($name){
return 'th_'.$name;
}
如果函數需要參數,則將填充欄位作為參數,如上面的 md5 和 get_name 函數填充.
ThinkPHP 自動填滿使用方法callback
當使用方法 callback 填充時,表示填充的內容是一個當前 Model 的方法傳回值,使用 callback 填充例子:
代碼如下:
class UserModel extends Model{
protected $_auto = array (
// 對username欄位在新增時回調getName方法
array('username','getName',1,'callback'),
);
}
getName方法將使用者名稱加上 th_ 首碼,參考如下:
代碼如下:
class UserModel extends Model{
// 將傳入的username加上th_首碼
function getName(){
return 'th_'.$_POST['username'];
}
}
注:上述例子將 username 欄位前自動加上 th_ 首碼而填充到 username 中,僅是為了說明自動填滿使用函數或回調方法的用法,可能並無實際生產意義
希望本文所述對大家的ThinkPHP架構程式設計有所協助。