<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          微擎表單驗證

          聯(lián)合創(chuàng)作 · 2023-10-02 10:41

          微擎表單驗證是一個讓你的表單驗證更為方便,快捷,安全的擴(kuò)展,滿足你的一切驗證需求。

          中文 | English

          目錄

          安裝

          使用composer命令

          composer require w7/engine-validate
          

          完整文檔查看完整文檔

          簡單驗證

          支持簡單定義一個驗證器并進(jìn)行驗證:

          try {
              $data = Validate::make([
                  'user' => 'required|email',
                  'pass' => 'required|lengthBetween:6,16',
              ], [
                  'user.required'      => '請輸入用戶名',
                  'user.email'         => '用戶名格式錯誤',
                  'pass.required'      => '請輸入密碼',
                  'pass.lengthBetween' => '密碼長度為6~16位',
              ])->check($data);
          } catch (ValidateException $e) {
              echo $e->getMessage();
          }
          

          如果驗證通過,則返回所有通過驗證的值,如未通過,則拋出一個W7\\Validate\\Exception\\ValidateException異常

          驗證器定義

          為具體的驗證場景或者數(shù)據(jù)表單定義驗證器類,我們需要繼承W7\\Validate\\Validate類,然后實例化后直接調(diào)用驗證類的check方法即可完成驗證,下面是一個例子:

          我們定義一個LoginValidate驗證器類用于登錄的驗證。

          class LoginValidate extends Validate
          {
              protected $rule = [
                  'user' => 'required|email',
                  'pass' => 'required|digits_between:6,16',
              ];
              
              protected $message = [
                  'user.required'       => '請輸入用戶名',
                  'user.email'          => '用戶名格式錯誤',
                  'pass.required'       => '請輸入密碼',
                  'pass.digits_between' => '密碼長度為6~16位',
              ];
          }
          
          
          類屬性定義的錯誤消息,優(yōu)先級要高于自定義規(guī)則中的默認(rèn)回復(fù),高于自定義規(guī)則方法返回的錯誤

          數(shù)據(jù)驗證

          $data = [
              'user' => '[email protected]',
              'pass' => ''
          ];
          $validate = new LoginValidate();
          $validate->check($data);
          

          此時會拋出一個W7\\Validate\\Exception\\ValidateException異常,message為請輸入密碼

          $data = [
              'user' => '[email protected]',
              'pass' => '123456'
          ];
          $validate = new LoginValidate();
          $data = $validate->check($data);
          

          驗證成功,并返回通過驗證的值,返回的值為數(shù)組類型

          驗證數(shù)組

          驗證表單的輸入為數(shù)組的字段也不難。你可以使用 「點」方法來驗證數(shù)組中的屬性。例如,如果傳入的 HTTP 請求中包含search[keyword]字段, 可以如下驗證:

          protected $rule = [
              'search.order'   => 'numeric|between:1,2',
              'search.keyword' => 'chsAlphaNum',
              'search.recycle' => 'boolean',
          ];
          

          你也可以驗證數(shù)組中的每個元素。例如,要驗證指定數(shù)組輸入字段中的每一個 id 是唯一的,可以這么做:

          protected $rule = [
              'search.*.id' => 'numeric|unique:account'
          ];
          

          數(shù)組規(guī)則的錯誤消息的定義也一樣

          protected $message = [
              'search.order.numeric'       => '排序參數(shù)錯誤',
              'search.order.between'       => '排序參數(shù)錯誤',
              'search.keyword.chsAlphaNum' => '關(guān)鍵詞只能包含中文,字母,數(shù)字',
              'search.recycle.boolean'     => '參數(shù)錯誤:recycle',
          ];
          

          驗證器類屬性

          $rule

          用戶定義驗證器的驗證規(guī)則,也可以通過setRules方法來進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部規(guī)則

          // 類中定義
          protected $rule = [
              'user' => 'required'
          ];
          
          // 使用方法定義
          $v->setRules([
              'user' => 'required'
          ]);
          

          $message

          用戶定義驗證器的錯誤信息,也可以通過setMessages方法來進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部錯誤消息

          // 類中定義
          protected $message = [
              'user.required' => '賬號必須填寫'
          ];
          
          // 使用方法定義
          $v->setMessages([
              'user.required' => '賬號必須填寫'
          ]);
          

          $scene

          定義驗證場景的數(shù)據(jù),用于指定驗證場景對應(yīng)的驗證字段等,詳細(xì)用法查看驗證場景一節(jié),同樣也可以通過setScene方法來進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部驗證場景

          // 類中定義
          protected $scene = [
              'login' => ['user', 'pass']
          ];
          
          // 使用方法定義
          $v->setScene([
              'login' => ['user', 'pass']
          ]);
          

          $event

          定義此驗證器下的全局事件,詳細(xì)用法查看事件一節(jié)

          protected $event = [
              CheckSiteStatus::class
          ];
          

          $customAttributes

          定義驗證字段的名稱,也可以通過setCustomAttributes方法來進(jìn)行設(shè)置,此方法為疊加,如果參數(shù)為null則為清空全部字段名稱, 錯誤消息中的:attribute會使用下面的值對應(yīng)的替換

          protected $customAttributes = [
              'user' => '賬號',
              'pass' => '密碼'
          ];
          

          $default

          定義字段的默認(rèn)值

          protected $default = [
              'name' => '張三'
          ];
          

          關(guān)于默認(rèn)值的詳情請查看默認(rèn)值一節(jié)

          $filter

          用于數(shù)據(jù)驗證后處理數(shù)據(jù)

          protected $filter = [
              'name' => 'trim'
          ];
          

          關(guān)于過濾器的詳情請查看過濾器一節(jié)

          $ruleMessage

          類方法規(guī)則的錯誤信息

           protected $ruleMessage = [
              ':attribute的值只能具有中文'
          ];
          

          點擊查看示例

          $filled

          所有驗證的字段在存在時不能為空,如果此屬性值為true,所有規(guī)則會自動增加filled規(guī)則,默認(rèn)為true

          當(dāng)出現(xiàn)以下情況時,不會自動添加filled規(guī)則

          • 驗證規(guī)則中存在filled, nullable, accepted, present,required, required_if, required_unless, required_with,required_with_all, required_without, required_without_all規(guī)則
          • 驗證規(guī)則存在extendImplicit定義的規(guī)則
          • 驗證規(guī)則存在extendImplicitRule定義的規(guī)則
          • 驗證規(guī)則實現(xiàn)了Itwmw\\Validation\\Support\\Interfaces\\ImplicitRule標(biāo)記接口
          protected bool $filled = true;
          

          $regex

          預(yù)定義正則表達(dá)式驗證規(guī)則,詳情查看正則表達(dá)式規(guī)則

          protected $regex = [
              'number' => '/^\\d+$/'
          ];
          
          瀏覽 18
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人免费乱码大片a毛片蜜芽 | 国产精品污污网站免费 | 久久aa | 国产美女啪啪 | 青娱乐无码在线视频 |