<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 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

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人