<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 驗證規則 驗證規則的定義通常有兩種方式,如果你使用了驗證器的話,通常通過`rule`屬性定義驗證規則,而如果使用的是獨立驗證的話,則是通過`rule`方法進行定義。 ## 屬性定義 屬性定義方式僅限于驗證器,通常類似于下面的方式: ``` <?php namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'age' => 'number|between:1,120', 'email' => 'email', ]; } ``` > 系統內置了一些常用的驗證規則可以滿足大部分的驗證需求,具體每個規則的含義參考內置規則一節。 因為一個字段可以使用多個驗證規則(如上面的`age`字段定義了`number`和`between`兩個驗證規則),在一些特殊的情況下,為了避免混淆可以在`rule`屬性中使用數組定義規則。 ``` <?php namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => ['require', 'max' => 25, 'regex' => '/^[\w|\d]\w+/'], 'age' => ['number', 'between' => '1,120'], 'email' => 'email', ]; } ``` ## 方法定義 如果使用的是獨立驗證(即手動調用驗證類進行驗證)方式的話,通常使用`rule`方法進行驗證規則的設置,舉例說明如下。 ``` $validate = new \think\Validate; $validate->rule('age', 'number|between:1,120') ->rule([ 'name' => 'require|max:25', 'email' => 'email' ]); $data = [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com' ]; if (!$validate->check($data)) { dump($validate->getError()); } ``` > `rule`方法傳入數組表示批量設置規則。 `rule`方法還可以支持使用對象化的規則定義,這是5.1版本新增的特性。 我們把上面的驗證代碼改為 ``` use think\validate\ValidateRule as Rule; $validate = new \think\Validate; $validate->rule('age', Rule::isNumber()->between([1,120])) ->rule([ 'name' => Rule::isRequire()->max(25), 'email' => Rule::isEmail(), ]); $data = [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com' ]; if (!$validate->check($data)) { dump($validate->getError()); } ``` 可以對某個字段使用閉包驗證,例如: ``` $validate = new \think\Validate; $validate->rule([ 'name' => function($value) { return 'thinkphp' == strtolower($value) ? true : false; }, ]); ``` 閉包支持傳入兩個參數,第一個參數是當前字段的值(必須),第二個參數是所有數據(可選)。 > 如果使用了閉包進行驗證,則不再支持對該字段使用多個驗證規則。 閉包函數如果返回true則表示驗證通過,返回false表示驗證失敗并使用系統的錯誤信息,如果返回字符串,則表示驗證失敗并且以返回值作為錯誤提示信息。 ``` $validate = new \think\Validate; $validate->rule([ 'name' => function($value) { return 'thinkphp' == strtolower($value) ? true : '用戶名錯誤'; }, ]); ``` > 屬性方式定義驗證規則不支持使用對象化規則定義和閉包定義
                  <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>

                              哎呀哎呀视频在线观看