發表日期:2018-12 文章編輯:小燈 瀏覽次數:3295
版本 | 新增功能 |
---|---|
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 瀏覽次數:4977
日期:2018-12 瀏覽次數:5260
日期:2018-12 瀏覽次數:4340
日期:2018-12 瀏覽次數:3692
日期:2018-12 瀏覽次數:4093
日期:2018-12 瀏覽次數:3657
日期:2018-12 瀏覽次數:3700
日期:2018-12 瀏覽次數:6517
日期:2018-12 瀏覽次數:3471
日期:2018-12 瀏覽次數:3576
日期:2018-12 瀏覽次數:3702
日期:2018-12 瀏覽次數:4827
日期:2018-12 瀏覽次數:3212
日期:2018-12 瀏覽次數:3528
日期:2018-12 瀏覽次數:3330
日期:2018-12 瀏覽次數:3211
日期:2018-12 瀏覽次數:3584
日期:2018-12 瀏覽次數:3451
日期:2018-12 瀏覽次數:4549
日期:2018-12 瀏覽次數:3999
日期:2018-12 瀏覽次數:3511
日期:2018-12 瀏覽次數:4312
日期:2018-12 瀏覽次數:3294
日期:2018-12 瀏覽次數:3287
日期:2018-12 瀏覽次數:3242
日期:2018-12 瀏覽次數:3404
日期:2018-12 瀏覽次數:3687
日期:2018-12 瀏覽次數:3476
日期:2018-12 瀏覽次數:3408
日期:2018-12 瀏覽次數:3462
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.