發表日期:2018-12 文章編輯:小燈 瀏覽次數:3308
版本 | 新增功能 |
---|---|
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 瀏覽次數:4987
日期:2018-12 瀏覽次數:5274
日期:2018-12 瀏覽次數:4349
日期:2018-12 瀏覽次數:3704
日期:2018-12 瀏覽次數:4116
日期:2018-12 瀏覽次數:3668
日期:2018-12 瀏覽次數:3712
日期:2018-12 瀏覽次數:6527
日期:2018-12 瀏覽次數:3481
日期:2018-12 瀏覽次數:3584
日期:2018-12 瀏覽次數:3714
日期:2018-12 瀏覽次數:4839
日期:2018-12 瀏覽次數:3221
日期:2018-12 瀏覽次數:3536
日期:2018-12 瀏覽次數:3338
日期:2018-12 瀏覽次數:3222
日期:2018-12 瀏覽次數:3592
日期:2018-12 瀏覽次數:3461
日期:2018-12 瀏覽次數:4563
日期:2018-12 瀏覽次數:4009
日期:2018-12 瀏覽次數:3521
日期:2018-12 瀏覽次數:4330
日期:2018-12 瀏覽次數:3307
日期:2018-12 瀏覽次數:3297
日期:2018-12 瀏覽次數:3254
日期:2018-12 瀏覽次數:3413
日期:2018-12 瀏覽次數:3697
日期:2018-12 瀏覽次數:3488
日期:2018-12 瀏覽次數:3418
日期:2018-12 瀏覽次數:3473
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.