发表日期:2018-12 文章编辑:小灯 浏览次数:3176
版本 | 新增功能 |
---|---|
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 浏览次数:4856
日期:2018-12 浏览次数:5125
日期:2018-12 浏览次数:4207
日期:2018-12 浏览次数:3569
日期:2018-12 浏览次数:3948
日期:2018-12 浏览次数:3515
日期:2018-12 浏览次数:3566
日期:2018-12 浏览次数:6386
日期:2018-12 浏览次数:3334
日期:2018-12 浏览次数:3440
日期:2018-12 浏览次数:3561
日期:2018-12 浏览次数:4682
日期:2018-12 浏览次数:3082
日期:2018-12 浏览次数:3395
日期:2018-12 浏览次数:3198
日期:2018-12 浏览次数:3075
日期:2018-12 浏览次数:3460
日期:2018-12 浏览次数:3310
日期:2018-12 浏览次数:4409
日期:2018-12 浏览次数:3886
日期:2018-12 浏览次数:3384
日期:2018-12 浏览次数:4149
日期:2018-12 浏览次数:3175
日期:2018-12 浏览次数:3150
日期:2018-12 浏览次数:3118
日期:2018-12 浏览次数:3267
日期:2018-12 浏览次数:3553
日期:2018-12 浏览次数:3349
日期:2018-12 浏览次数:3292
日期:2018-12 浏览次数:3337
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.