class UserModel extends Model{
protected $_validate=array(
//下面還需要再寫數組。一個數組就是一條驗證規則
//array('驗證字段','驗證規則','錯誤提示','驗證條件','附加規則','驗證時間'),
//驗證字段:需要驗證的表單字段名稱,也可以表單當中的一些輔助字段,例如驗證碼,附加碼,重復密碼等
//驗證規則,驗證規則必須要結合附加規則一起使用
//錯誤提示:如果出現錯誤,拋出一個什麼樣的錯誤提示告知用戶
//驗證條件:0,1,2()
//附加規則:
// regex 使肜正則進行驗證 可以自己在驗證規則當中寫一個正則表達示(第一上兄弟連論壇下載高老師的正則視頻,
//第二,thinkphp功能強勁他為我們封了一些正則,第三,網上已為了准備了一些常用正則)
// function 使用函數進行驗證,前面驗證規則這個地方必須要寫函數名time
// callback 是一個回調 他會去找當前UserModel當中的一個成員方法
// confirm 驗證表單當中的兩個字段是否相等。
// equal 驗主下是否等於某個值
// in 是否在某一個范圍內 驗證規則當中需要寫上一個數組
// unique 驗證是否唯一,系統會要據字段目前的值查詢數據庫來判斷是否有相同的值
//
// 如果用系統內置的一些常用正則,只需要寫到錯誤提示即可,
// require 字段必須驗證 email驗證郵箱 url是驗證url地址的 currency貨幣 number數字
// 驗證時間: 是指數據庫操作時間的驗證時機
// 1新增數據的時候進行驗證 Model::MODEL_INSERT
// 2 編輯的時候才進行驗證 Model::MODEL_UPDATE
// 3 全部情況下驗證 Model::MODEL_BOTH
//
array("user_name","require","用戶名必須要填寫!"),
array("user_name","6,12","用戶名必須在6到12位之間",0,"length"),
array("real_name","require","需要填寫真實的姓名!"),
array("password","require","密碼必須要填!"),
array("password","8,12","密碼必須在8到12位之間",0,"length"),
array("rePassword","require","重復密碼必須要填寫!"),
array("password","rePassword","兩次輸入的密碼不一致",0,"confirm"),
array("email","require","郵箱必須要填寫"),
array("email","email","郵箱格式錯誤!",1),
array("verify","require","驗證碼必須填"),
array("code","checkCode","驗證碼輸入錯誤",0,"callback"),
);
protected $_auto=array(
//array('填充字段','填充內容','填充條件','附加規則');
//填充字段: 這個字段可以是表單當中的字段,也可以是數據庫當中的字段。也可以是一些輔助字段
//填充內容,配合附加規則一同使用
//填充條件, 1,2,3分別對應新增、編輯和所有情況下 Model::MODEL_INSERT (默認參數為新增的時候進行填充)
// 附加規則, function callback, field(用其它字段來填充),表示此處可以拿到其他字段的一個值
// string , 字符串來填充。這一項,是thinkphp自動完成裡面的默認選項
array("password","md5",3,"function"),
array("age","deal_int",3,"callback"),
);
protected $_map=array(
"username"=>"user_name", //不同的thinkPHP的版本可能會有差別,注意和$_validate中的字段對應
"realname"=>"real_name", //'是要在表單當中的字段寫在前面'=>'是寫到後面,數據表當中的真實字段寫到後面',
);
protected function deal_int($data){
return (int)$data;
}
protected function checkCode($data){
if(md5($_POST['code'])!=$_SESSION['verify']){
return false;
}
return true;
}
}