ThinkPHP中的三大自動簡介
本文較為詳細(xì)的講述了ThinkPHP中的三大自動,是非常重要的應(yīng)用,分享給大家供大家參考。具體如下:
一、自動驗證
格式如下:
array('驗證字段','驗證規(guī)則','錯誤提示','驗證條件','附加規(guī)則','驗證時間')
參數(shù)說明:
驗證字段:需要驗證表單字段名稱
驗證規(guī)則:必須要結(jié)合附加規(guī)則一起使用
錯誤提示:如果出現(xiàn)錯誤,拋出一個什么樣的錯誤提示告知用戶
驗證條件:0、1、2
附加規(guī)則:1、regex使用正則驗證 2、function使用函數(shù)驗證 3、callback回調(diào) 4、confirm驗證表單當(dāng)中兩個字段是否相同 5、驗證是否等于某個值 6、in是否在某一個范圍內(nèi) 7、驗證是否唯一
TP封裝:require 字段必須驗證;eamil 驗證郵箱;url 驗證url地址;currency 貨幣;number 數(shù)字;
驗證時間:指數(shù)據(jù)庫操作時間的驗證時機(jī),新增數(shù)據(jù)時驗證Model::MODEL_INSERT;編輯的時候驗證Model::MODEL_UPDATE;全部情況下驗證Model::MODEL_BOTH;
aoli/Home/Tpl/default/User/reg.html頁面如下:
<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 /> 注冊時間:<input type="text" name="createtime" /><br /> 注冊IP:<input type="text" name="createip" /><br /> <input type="submit" value="注冊" /> </form>
aoli/Home/Lib/Model/UserModel.class.php頁面如下:
<?php
class UserModel extends Model{//對應(yīng)數(shù)據(jù)庫中的表user
protected $_validate=array(
array('username','require','用戶名必填'),
array('username','checklen','用戶名長度過長或過短',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頁面如下:
<?php
class UserAction extends Action {
function reg(){
$this->display();
}
function regadd(){
$user=D('user');
if($user->create()){
if($user->add()){
$this->success('注冊成功');
}else{
$this->error('注冊失敗');
}
}else{
$this->error($user->getError());
}
}
}
?>
二、自動完成(自動填充)
自動完成也是ThinkPHP當(dāng)中的一個成員方法,在create的時候,自動執(zhí)行
規(guī)則如下:
array('填充字段','填充內(nèi)容','填充條件','附加規(guī)則');
簡單示例如下:
protected $_auto = array (
//array( 'status','1'), // 新增的時候把 status 字段設(shè)置為 1
array('password','md5',1,'function') , // 對 password 字段在新增的時候使 md5 函數(shù)處理
array('createtime','time',3,'function' ), // 對 create_time 字段在更新的時候?qū)懭氘?dāng)前時間戳
);
二、自動映射(字段映射)
自動映射:將數(shù)據(jù)庫的字段映射成別名,在表單中就可以使用別名了。
簡單示例如下:
protected $_map = array( 'name' => 'username', 'pass' => 'password', );
詳細(xì)本文所述技巧對于大家學(xué)習(xí)及使用ThinkPHP有一定的幫助作用。
相關(guān)文章
在PHP語言中使用JSON和將json還原成數(shù)組的方法
PHP網(wǎng)頁游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(十二)
讓Laravel API永遠(yuǎn)返回JSON格式響應(yīng)的方法示例
laravel 解決多庫下的DB::transaction()事務(wù)失效問題
Zend Framework教程之響應(yīng)對象的封裝Zend_Controller_Response實例詳解

