本文實例講述了thinkPHP5框架自定義驗證器實現方法。分享給大家供大家參考,具體如下:
普通的驗證器手冊上已經很詳細,我們講解一下如何自定義一個驗證器
首先我們在模塊目錄下建立validata文件夾
然后在里面建立一個類,取名為IdMustInt.php
代碼如下:注意,我的模塊名為api,所以命名空間如下
保護屬性$rule為官方規定,不能改變,其實驗證規則require都是封裝好的函數名,所以我們也建立一個方法,方法名填寫在驗證規則后面即可。
- namespace app/api/validate;
- use think/Validate;
- class IdMustInt extends Validate
- {
- protected $rule = [
- 'id' => 'require|IsInt'
- ];
- protected function IsInt($value,$rule,$data,$field){
- //參數依次為驗證數據,驗證規則,全部數據(數組),字段名
- //這里我們要判斷的驗證的數據要求必須為正整型
- if(is_numeric($value) && is_int($value+0) && ($value+0) > 0){
- return true;
- }else{
- //如果不符合我們的條件,返回錯誤信息,在控制器中可以用getError()方法輸出
- return $field.'不是整型';
- }
- }
- }
接下來看我們控制器的對應操作。
- public function getBanner($id)
- {
- //需要驗證的數據
- $data = [
- 'id' => $id,
- ];
- //實例化驗證器
- $validate = new IdMustInt();
- //如果驗證數據較多,條件也較多,需要批量返回所有錯誤信息的話,可以在check()前加上$validata->batch()
- $result = $validate->check($data);
- if($result){
- //業務邏輯
- }else{
- dump($validate->getError());
- } //Vevb.com
- }
新聞熱點
疑難解答
圖片精選