首页 > 代码库 > TP5验证规则使用
TP5验证规则使用
定义验证器类:
namespace app\index\validate;use think\Validate;class User extends Validate{ protected $rule = [ ‘name‘ => ‘require|max:25‘, ‘email‘ => ‘email‘, ]; protected $message = [ ‘name.require‘ => ‘用户名必须‘, ‘email‘ => ‘邮箱格式错误‘, ]; protected $scene = [ ‘add‘ => [‘name‘,‘email‘], ‘edit‘ => [‘email‘], ]; }
①静态调用(使用内置的规则验证单个数据,返回值为布尔值)
// 日期格式验证Validate::dateFormat(‘2016-03-09‘,‘Y-m-d‘); // true// 验证是否有效的日期Validate::is(‘2016-06-03‘,‘date‘); // true// 验证是否有效邮箱地址Validate::is(‘thinkphp@qq.com‘,‘email‘); // true// 验证是否在某个范围Validate::in(‘a‘,[‘a‘,‘b‘,‘c‘]); // true// 验证是否大于某个值Validate::gt(10,8); // true// 正则验证Validate::regex(100,‘\d+‘); // true
②模型验证(在模型中的验证方式)
$User = new User;$result = $User->validate( [ ‘name‘ => ‘require|max:25‘, ‘email‘ => ‘email‘, ], [ ‘name.require‘ => ‘名称必须‘, ‘name.max‘ => ‘名称最多不能超过25个字符‘, ‘email‘ => ‘邮箱格式错误‘, ])->save($data);if(false === $result){ // 验证失败 输出错误信息 dump($User->getError());}
③控制器验证(控制器中进行验证)
如果你需要在控制器中进行验证,并且继承了\think\Controller
的话,可以调用控制器类提供的validate
方法进行验证,如下:
$result = $this->validate( [ ‘name‘ => ‘thinkphp‘, ‘email‘ => ‘thinkphp@qq.com‘, ], [ ‘name‘ => ‘require|max:25‘, ‘email‘ => ‘email‘, ]);if(true !== $result){ // 验证失败 输出错误信息 dump($result);}
控制器中的验证代码可以简化为:
$result = $this->validate($data,‘User‘);if(true !== $result){ // 验证失败 输出错误信息 dump($result);}
如果要使用场景,可以使用:
$result = $this->validate($data,‘User.edit‘);if(true !== $result){ // 验证失败 输出错误信息 dump($result);}
在validate方法中还支持做一些前置的操作回调,使用方式如下:
$result = $this->validate($data,‘User.edit‘,[],[$this,‘some‘]);if(true !== $result){ // 验证失败 输出错误信息 dump($result);}
TP5验证规则使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。