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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ThinkPHP`5.1`推薦使用驗證器進行數據驗證(也支持使用`\think\Validate`類進行獨立驗證)。 ## 驗證器定義 為具體的驗證場景或者數據表定義好驗證器類,直接調用驗證類的`check`方法即可完成驗證,下面是一個例子: 我們定義一個`\app\index\validate\User`驗證器類用于`User`的驗證。 ~~~ namespace app\index\validate; use think\Validate; class User extends Validate { protected $rule = [ 'name' => 'require|max:25', 'email' => 'email', ]; } ~~~ > `V5.1.15+`版本開始,可以使用下面的指令快速生成`User`驗證器。 > ~~~cmd > php think make:validate index/User > ~~~ 可以直接在驗證器類中使用`message`屬性定義錯誤提示信息,例如: ~~~ 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' => '郵箱格式錯誤', ]; } ~~~ >[danger] 如果沒有定義錯誤提示信息,則使用系統默認的提示信息 ## 數據驗證 在需要進行`User`驗證的控制器方法中,添加如下代碼即可: ~~~ namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { $data = [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ]; $validate = new \app\index\validate\User; if (!$validate->check($data)) { dump($validate->getError()); } } } ~~~ 事實上控制器類提供了一個`validate`方法可以更方便的進行驗證,如下: ~~~ namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { $result = $this->validate( [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ], 'app\index\validate\User'); if (true !== $result) { // 驗證失敗 輸出錯誤信息 dump($result); } } } ~~~ ## 批量驗證 默認情況下,一旦有某個數據的驗證規則不符合,就會停止后續數據及規則的驗證,如果希望批量進行驗證,可以設置: ~~~ namespace app\index\controller; use think\Controller; class Index extends Controller { // 是否批量驗證 protected $batchValidate = true; public function index() { $result = $this->validate( [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ], 'app\index\validate\User'); if (true !== $result) { // 驗證失敗 輸出錯誤信息 dump($result); } } } ~~~ 在非`控制器`的地方如果需要執行批量驗證,可以在驗證的時候添加是否批量的方法`batch()` ~~~ namespace app\common\service; use app\common\validate\User as UserValidate; class Test { public function validateTest($data) { $validata = new UserValidate; $result = $validate->batch()->check($data); if ($result !== true) { dump($result); } } } ~~~ >[danger] 批量驗證如果驗證不通過,返回的是一個錯誤信息的數組。 ## 拋出驗證異常 默認情況下驗證失敗后不會拋出異常,如果希望驗證失敗自動拋出異常,可以在控制器類中添加設置: ~~~ namespace app\index\controller; use think\Controller; class Index extends Controller { // 驗證失敗是否拋出異常 protected $failException = true; public function index() { $result = $this->validate( [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ], 'app\index\validate\User'); } } ~~~ 設置開啟了驗證失敗后拋出異常的話,無需手動獲取錯誤信息,會自動拋出`think\exception\ValidateException`異常或者自己捕獲處理。 ## 自定義驗證規則 系統內置了一些常用的規則(參考后面的內置規則),如果不能滿足需求,可以在驗證器重添加額外的驗證方法,例如: ~~~ 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`個(后面三個根據情況選用),依次為: * 驗證數據 * 驗證規則 * 全部數據(數組) * 字段名 * 字段描述 >[danger] 自定義的驗證規則方法名不能和已有的規則沖突。
                  <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>

                              哎呀哎呀视频在线观看