• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網絡科技有限公司!
    電話圖標 余先生:13699882642

    易優CMS驗證規則

    發表日期:2018-12 文章編輯:小燈 瀏覽次數:3522

    版本新增功能
    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);

    本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/11148.html
    相關cms文章
     八年  行業經驗

    多一份參考,總有益處

    聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

    咨詢相關問題或預約面談,可以通過以下方式與我們聯系

    業務熱線:余經理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    亚洲精品国产自在久久| 91国语精品自产拍在线观看一| 视频久re精品在线观看| 久久精品无码午夜福利理论片| 精品国产日韩亚洲一区| 日韩精品一区二区三区在线观看l| 久久精品亚洲精品国产色婷| 亚洲精品字幕在线观看| 亚洲?V乱码久久精品蜜桃 | 精品久久久久久无码专区不卡 | 亚洲国产成人久久精品动漫| 精品无码一级毛片免费视频观看| 国产精品视频公开费视频| 国内精品久久国产| 亚洲精品视频免费看| 久久永久免费人妻精品| 伊人久久综合精品无码AV专区| 热99精品只有里视频最新| 日韩精品中文字幕视频一区| 久这里只精品99re66| 亚洲精品mv在线观看| 日韩精品亚洲人成在线观看| 国产精品熟女高潮视频| 熟女人妻少妇精品视频| 精品亚洲成α人无码成α在线观看| 在线观看91精品国产不卡免费| 久九九精品免费视频| 精品无码一区二区三区在线 | 亚洲精品tv久久久久久久久久| 国产精品久久久尹人香蕉| 精品国产一区二区三区久久狼| 欧美精品大香伊蕉在人线| 亚洲精品国产首次亮相| 国产精品三级视频| 久久夜色精品国产噜噜亚洲a| 亚洲国产成人精品久久| 国产91久久精品一区二区| 国产成人精品免费视| 2020久久精品国产免费| 亚洲精品美女久久久久久久| 囯产精品久久久久久久久久妞妞|