<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                |版本|新增功能| |---|---| |5.0.4|支持傳入`field`參數批量設置驗證字段的描述信息| ## 設置規則 可以在實例化`Validate`類的時候傳入驗證規則,例如: ~~~ $rules = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', ]; $validate = new Validate($rules); ~~~ 也可以使用`rule`方法動態添加規則,例如: ~~~ $rules = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', ]; $validate = new Validate($rules); $validate->rule('zip', '/^\d{6}$/'); $validate->rule([ 'email' => 'email', ]); ~~~ ## 規則定義 規則定義支持下面兩種方式: ~~~ $rules = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', ]; $validate = new Validate($rules); ~~~ 對于一個字段可以設置多個驗證規則,使用`|`分割。 或者采用數組方式定義多個規則(適用于你的驗證規則中有`|`的情況) ~~~ $rules = [ 'name' => ['require','max'=>25], 'age' => ['number','between'=>'1,120'], ]; $validate = new Validate($rules); ~~~ ## 屬性定義 通常情況下,我們實際在定義驗證類的時候,可以通過屬性的方式直接定義驗證規則等信息,例如: ~~~ namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; protected $message = [ 'name.require' => '名稱必須', 'name.max' => '名稱最多不能超過25個字符', 'age.number' => '年齡必須是數字', 'age.between' => '年齡只能在1-120之間', 'email' => '郵箱格式錯誤', ]; } ~~~ ## 驗證數據 下面是一個典型的驗證數據的例子: ~~~ $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; $msg = [ 'name.require' => '名稱必須', 'name.max' => '名稱最多不能超過25個字符', 'age.number' => '年齡必須是數字', 'age.between' => '年齡只能在1-120之間', 'email' => '郵箱格式錯誤', ]; $data = [ 'name' => 'thinkphp', 'age' => 10, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule, $msg); $result = $validate->check($data); ~~~ 如果需要批量驗證,可以使用: ~~~ $validate = new Validate($rule, $msg); $result = $validate->batch()->check($data); ~~~ > 批量驗證如果驗證不通過,返回的是一個錯誤信息的數組。 如果你定義了User驗證器類的話,可以使用下面的驗證代碼: ~~~ $data = [ 'name' => 'thinkphp', 'age' => 10, 'email' => 'thinkphp@qq.com', ]; $validate = Loader::validate('User'); if(!$validate->check($data)){ dump($validate->getError()); } ~~~ ## 閉包函數驗證 可以對某個字段使用閉包驗證,例如: ~~~ $validate = new \think\Validate([ 'name' => function($value,$data) { return 'thinkphp'==$value ? true : false; }, ]); ~~~ 第一個參數是當前字段的值,第二個參數是全部數據 ## 自定義驗證規則 系統內置了一些常用的規則,如果還不夠用,可以自己擴展驗證規則。 如果使用了驗證器的話,可以直接在驗證器類添加自己的驗證方法,例如: ~~~ namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'checkName:thinkphp', 'email' => 'email', ]; protected $message = [ 'name' => '用戶名必須', 'email' => '郵箱格式錯誤', ]; // 自定義驗證規則 protected function checkName($value,$rule,$data) { return $rule == $value ? true : '名稱錯誤'; } } ~~~ 驗證方法可以傳入的參數共有`5`個(后面三個根據情況選用),依次為: * 驗證數據 * 驗證規則 * 全部數據(數組) * 字段名 * 字段描述 > 并且需要注意的是,自定義的驗證規則方法名不能和已有的規則沖突。 接下來,就可以這樣進行驗證: ~~~ $validate = Loader::validate('User'); if(!$validate->check($data)){ dump($validate->getError()); } ~~~ 如果沒有使用驗證器類,則支持使用`extend`方法擴展驗證規則,例如: ~~~ $validate = new Validate(['name' => 'checkName:1']); $validate->extend('checkName', function ($value, $rule) { return $rule == $value ? true : '名稱錯誤'; }); $data = ['name' => 1]; $result = $validate->check($data); ~~~ 支持批量注冊驗證規則,例如: ~~~ $validate = new Validate(['name' => 'checkName:1']); $validate->extend([ 'checkName'=> function ($value, $rule) { return $rule == $value ? true : '名稱錯誤'; }, 'checkStatus'=> [$this,'checkStatus'] ]); $data = ['name' => 1]; $result = $validate->check($data); ~~~ ### 設置字段信息 `V5.0.4+`版本開始,驗證類的架構方法支持傳入`field`參數批量設置字段的描述信息,例如: ~~~ $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; $field = [ 'name' => '名稱', 'age' => '年齡', 'email' => '郵箱', ]; $data = [ 'name' => 'thinkphp', 'age' => 10, 'email' => 'thinkphp@qq.com', ]; $validate = new Validate($rule, [] , $field); $result = $validate->check($data); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看