ThinkPHP框架表單驗證

ThinkPHP框架的表單驗證分爲靜態驗證和動態驗證。php

靜態驗證:數組

首先在Model文件下創建一個表的模型,驗證哪一個表就鍵哪一個表的模型。如驗證users表,則創建textModel.class.php的文件。框架

定義一個textModel類,繼承父類Modelui

在類裏面添加二維數組,數組裏存放驗證條件。條件格式爲:this

  1. array(
  2. array(驗證字段1,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),
  3. array(驗證字段2,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),
  4. ......
  5. );

具體的驗證條件能夠再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();
            }
        }
        
    }
}
相關文章
相關標籤/搜索