<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            ThinkPHP中create()方法自動驗證表單信息

            時間:2025-11-13 00:09:27 php語言

            ThinkPHP中create()方法自動驗證表單信息

              文章主要為大家詳細介紹了ThinkPHP中create()方法自動驗證表單信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

              自動驗證是ThinkPHP模型層提供的一種數據驗證方法,可以在使用create創建數據對象的時候自動進行數據驗證。

              原理:

              create()方法收集表單($_POST)信息并返回,同時觸發表單自動驗證,過濾非法字段,

              在控制器中使用create()方法,(返回值為true/false),會自動觸發模型類中的$_validate屬性(為父類Model中的方法,在子類Model中重寫),在$_validate中自定義驗證規則(驗證規則下面會詳細說明),當create()方法沒有數據即返回值為false時,通過$xxx對象->getError();獲取并返回錯誤信息!

              使用自動驗證必須按照以下規則格式定義:

              protected $_validate = array(

              array(驗證字段1,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),

              array(驗證字段2,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),

              ......

              );

              其中驗證字段,驗證規則,錯誤提示是必填項,驗證條件,附加規則,驗證時間為可選!

              驗證字段(必填):表單字段。

              驗證規則(必填):require 字段必須、email 郵箱、url URL地址、number 數字,還可以結合附加規則使用。

              錯誤提示(必填):驗證失敗時返回的提示信息。

              驗證條件(可選):有0,1,2三種,0:_POST中存在的字段驗證,默認;1:驗證規則定義了就必須驗證;2:值不為空時驗證.

              附加規則:

              驗證時間(可選):共有1,2,3三種,1:新增數據時候驗證;2:編輯數據時候驗證;3:全部情況下驗證(默認);也可以可以根據業務需要增加其他的驗證時間

              下面附上代碼:以注冊為例

              前臺頁面比較簡單,代碼就不貼出來了,下面是前臺注冊界面截圖

              控制器代碼:

              /pic/p>

              public function register(){

              $user = new \Model\UserModel();

              /pic/p>

              if (!empty($_POST)) {

              /pic/p>

              $date = $user->create();

              /pic/p>

              if ($date) { /pic/p>

              /pic/p>

              $date['user_hobby'] = implode(',', $date['user_hobby']);

              $info = $user->add($date);

              if ($info) {

              /pic/p>

              $this->redirect('Index/index');

              }

              }else{

              /pic/p>

              $error = $user->getError();

              $this->assign('error',$error);

              }

              }

              /pic/p>

              $this->display();

              }

              模型類代碼:

              class UserModel extends Model{

              /pic/p>

              protected $patchValidate = true; /pic/p>

              /pic/p>

              protected $_validate = array(

              /pic/p>

              /pic/p>

              array('username','require','用戶名不能為空'),

              array('username','','該用戶名已經被占用','0','unique'),

              /pic/p>

              array('password','require','密碼不能為空'),

              /pic/p>

              array('password2','require','確認密碼必須填寫'),

              array('password2','password','兩次密碼保持一致',0,'confirm'),

              /pic/p>

              array('user_email','email','郵箱格式不正確',2),

              /pic/p>

              array('user_qq','number','qq必須是數字'),

              array('user_qq','5,12','位數在5-12位之間',0,'length'),

              /pic/p>

              array('user_xueli','2,5','學位必須選擇一個',0,'between'),

              /pic/p>

              /pic/p>

              array('user_hobby','check_hobby','愛好必須選兩項或以上',1,'callback'),

              );

              /pic/p>

              /pic/p>

              function check_hobby($arg)

              {

              /pic/p>

              if (count($arg)<2) {

              return false; /pic/p>

              }

              return true;

              }

              }

              把驗證的錯誤信息在模板中給展示出來(部分代碼)

              <td style="width:13%; text-align: right;">

              <label for="User_username" class="required">用戶名

              <span>*</span></label>

              </td>

              <td style="width:87%;">

              <input class="inputBg" size="25" name="username" id="User_username" type="text" value="" />

              <span style="color:red;"><{$error.username|default:""}></span>

              </td>

            【ThinkPHP中create()方法自動驗證表單信息】相關文章:

            ThinkPHP中自動驗證11-05

            ThinkPHP表單自動提交驗證實例教程03-12

            PHP 表單驗證方法12-05

            php中tp驗證表單與自動填充函數代碼11-10

            常用表單驗證的js方法02-03

            兩種實現表單驗證的javascript方法12-15

            PHP中Yii框架之表單驗證規則11-02

            使用php自動提交表單的方法12-05

            php編程必學之表單驗證12-11

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看