ThinkPHP框架的表單驗證分爲靜態驗證和動態驗證。php
靜態驗證:數組
首先在Model文件下創建一個表的模型,驗證哪一個表就鍵哪一個表的模型。如驗證users表,則創建textModel.class.php的文件。框架
定義一個textModel類,繼承父類Modelui
在類裏面添加二維數組,數組裏存放驗證條件。條件格式爲:this
array(
array(驗證字段1,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),
array(驗證字段2,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),
......
);
具體的驗證條件能夠再php手冊中查詢。spa
namespace Home\Model; use Think\Controller; class textModel extends Model { array( array("users","require","用戶名不能爲空"), //驗證用戶名是否爲空 array("age","","用戶名已存在",1,"unique"), //驗證是否存在 array("pwd","pwd1","兩次輸入密碼不一致",1,"confirm"), //驗證兩次輸入是否相等。 array("age","18,15","年齡必須在18到50之間",1,"between"), //驗證在某個範圍以內。 array("email","email","郵箱格式輸入不正確") //驗證格式是否正確 ); }
而後就能夠在控制器中驗證並調取錯誤信息code
1 namespace Home\Controller; 2 use Think\Controller; 3 class ZhuCeController extends Controller 4 { 5 function ZhuCe() 6 { 7 if(empty($_POST)) 8 { 9 $this->display(); 10 } 11 else 12 { 13 $model = new \Home\Model\testModel(); //建立模型 14 if(!$model->create()) //判斷是否成功建立表單 15 { 16 //失敗的輸出錯誤信息 17 $e = $model->getError(); 18 $this->error($e); 19 } 20 else 21 { 22 $model->add(); 23 } 24 } 25 } 26 }
動態驗證:blog
動態驗證直接在控制器裏建立一個二維數組,將驗證條件放在裏面,而後用model調用裏面的validate方法,將條件做爲一個參數放在裏面進行驗證。繼承
namespace Home\Controller; use Think\Controller; class ZhuCeController extends Controller { function ZhuCe() { if(empty($_POST)) { $this->display(); } else { $model = new \Home\Model\testModel(); $rules = array( array('uid','require','用戶名不能爲空'), ) if(!$model->validate($rules)->create()) { echo $model->getError(); } } } }