|
本文較為詳細(xì)的講述了Thinkphp中的三大自動(dòng),是非常重要的應(yīng)用,分享給大家供大家參考。具體如下:
一、自動(dòng)驗(yàn)證
格式如下:
array('驗(yàn)證字段','驗(yàn)證規(guī)則','錯(cuò)誤提示','驗(yàn)證條件','附加規(guī)則','驗(yàn)證時(shí)間')
參數(shù)說明:
驗(yàn)證字段:需要驗(yàn)證表單字段名稱
驗(yàn)證規(guī)則:必須要結(jié)合附加規(guī)則一起使用
錯(cuò)誤提示:如果出現(xiàn)錯(cuò)誤,拋出一個(gè)什么樣的錯(cuò)誤提示告知用戶
驗(yàn)證條件:0、1、2
附加規(guī)則:1、regex使用正則驗(yàn)證 2、function使用函數(shù)驗(yàn)證 3、callback回調(diào) 4、confirm驗(yàn)證表單當(dāng)中兩個(gè)字段是否相同 5、驗(yàn)證是否等于某個(gè)值 6、in是否在某一個(gè)范圍內(nèi) 7、驗(yàn)證是否唯一
TP封裝:require 字段必須驗(yàn)證;eamil 驗(yàn)證郵箱;url 驗(yàn)證url地址;currency 貨幣;number 數(shù)字;
驗(yàn)證時(shí)間:指數(shù)據(jù)庫(kù)操作時(shí)間的驗(yàn)證時(shí)機(jī),新增數(shù)據(jù)時(shí)驗(yàn)證Model::MODEL_INSERT;編輯的時(shí)候驗(yàn)證Model::MODEL_UPDATE;全部情況下驗(yàn)證Model::MODEL_BOTH;
aoli/Home/Tpl/default/User/reg.html頁(yè)面如下:
<form action="__URL__/regadd" method="post"> 用戶名:<input type="text" name="username" /><br /> 密碼:<input type="password" name="password" /><br /> 重復(fù)密碼:<input type="password" name="repassword" /><br /> 注冊(cè)時(shí)間:<input type="text" name="createtime" /><br /> 注冊(cè)IP:<input type="text" name="createip" /><br /> <input type="submit" value="注冊(cè)" /></form>
aoli/Home/Lib/Model/UserModel.class.php頁(yè)面如下:
<?phpclass UserModel extends Model{//對(duì)應(yīng)數(shù)據(jù)庫(kù)中的表user protected $_validate=array( array('username','require','用戶名必填'), array('username','checklen','用戶名長(zhǎng)度過長(zhǎng)或過短',0,'callback'), array('password','require','密碼必填'), array('repassword','require','重復(fù)密碼必填'), array('password','repassword','兩次密碼不一致',0,'confirm'), array('createtime','number','您輸入的不是數(shù)字'), array('createip','email','郵箱格式不正確'), ); function checklen($data){ if(strlen($data)>15 || strlen($data)<5){ return false; }else{ return true; } } }?>
aoli/Home/Lib/Action/UserAction.class.php頁(yè)面如下:
<?php class UserAction extends Action { function reg(){ $this->display(); } function regadd(){ $user=D('user'); if($user->create()){ if($user->add()){ $this->success('注冊(cè)成功'); }else{ $this->error('注冊(cè)失敗'); } }else{ $this->error($user->getError()); } } }?>
二、自動(dòng)完成(自動(dòng)填充)
自動(dòng)完成也是Thinkphp當(dāng)中的一個(gè)成員方法,在create的時(shí)候,自動(dòng)執(zhí)行
規(guī)則如下:
array('填充字段','填充內(nèi)容','填充條件','附加規(guī)則');
簡(jiǎn)單示例如下:
protected $_auto = array ( //array( 'status','1'), // 新增的時(shí)候把 status 字段設(shè)置為 1 array('password','md5',1,'function') , // 對(duì) password 字段在新增的時(shí)候使 md5 函數(shù)處理 array('createtime','time',3,'function' ), // 對(duì) create_time 字段在更新的時(shí)候?qū)懭氘?dāng)前時(shí)間戳);
二、自動(dòng)映射(字段映射)
自動(dòng)映射:將數(shù)據(jù)庫(kù)的字段映射成別名,在表單中就可以使用別名了。
簡(jiǎn)單示例如下:
protected $_map = array( 'name' => 'username', 'pass' => 'password',);
詳細(xì)本文所述技巧對(duì)于大家學(xué)習(xí)及使用Thinkphp有一定的幫助作用。
php技術(shù):ThinkPHP中的三大自動(dòng)簡(jiǎn)介,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。