發表日期:2018-12 文章編輯:小燈 瀏覽次數:3300
版本 | 新增功能 |
---|---|
5.0.4 | 增加hasScene 方法用于檢查是否存在驗證場景 |
可以在定義驗證規則的時候定義場景,并且驗證不同場景的數據,例如:
$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);$validate->scene('edit', ['name', 'age']);$result = $validate->scene('edit')->check($data);
表示驗證edit場景(該場景定義只需要驗證name和age字段)。
如果使用了驗證器,可以直接在類里面定義場景,例如:
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'=> '郵箱格式錯誤',];protected $scene = ['edit'=>['name','age'],];}
然后再需要驗證的地方直接使用 scene 方法驗證
$data = ['name'=> 'thinkphp','age' => 10,'email' => 'thinkphp@qq.com',];$validate = new \app\index\validate\User($rule);$result = $validate->scene('edit')->check($data);
可以在定義場景的時候對某些字段的規則重新設置,例如:
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'=> '郵箱格式錯誤',];protected $scene = ['edit'=>['name','age'=>'require|number|between:1,120'],];}
可以對場景設置一個回調方法,用于動態設置要驗證的字段,例如:
$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);$validate->scene('edit', function($key,$data){return 'email'==$key && isset($data['id'])? true : false;});$result = $validate->scene('edit')->check($data);
日期:2018-12 瀏覽次數:4980
日期:2018-12 瀏覽次數:5264
日期:2018-12 瀏覽次數:4343
日期:2018-12 瀏覽次數:3695
日期:2018-12 瀏覽次數:4102
日期:2018-12 瀏覽次數:3661
日期:2018-12 瀏覽次數:3702
日期:2018-12 瀏覽次數:6521
日期:2018-12 瀏覽次數:3476
日期:2018-12 瀏覽次數:3578
日期:2018-12 瀏覽次數:3706
日期:2018-12 瀏覽次數:4829
日期:2018-12 瀏覽次數:3214
日期:2018-12 瀏覽次數:3530
日期:2018-12 瀏覽次數:3332
日期:2018-12 瀏覽次數:3214
日期:2018-12 瀏覽次數:3587
日期:2018-12 瀏覽次數:3453
日期:2018-12 瀏覽次數:4553
日期:2018-12 瀏覽次數:4001
日期:2018-12 瀏覽次數:3515
日期:2018-12 瀏覽次數:4317
日期:2018-12 瀏覽次數:3299
日期:2018-12 瀏覽次數:3290
日期:2018-12 瀏覽次數:3246
日期:2018-12 瀏覽次數:3407
日期:2018-12 瀏覽次數:3691
日期:2018-12 瀏覽次數:3479
日期:2018-12 瀏覽次數:3411
日期:2018-12 瀏覽次數:3466
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.