think php 3种验证方式
方式一:独立验证
// 验证1、独立验证 //验证的规则 $rule = [ 'name' => 'require|max:25', 'username' => 'require', 'password' => 'require', 'email'=>'require' ]; // 验证的错误信息 $msg = [ 'name.require' => '用户名不可以为空', 'name.max' => '用户名最多不能超过25个字符', 'username.require' => '用户昵称不可以为空', 'password.require' => '密码不可以为空', 'email.require' => '邮箱不可以为空', ]; $validate = new Validate($rule,$msg); $result= $validate->check($data); if(!$result){ $this->error($validate->getError(),'goods/goods/create'); }
方式二:控制器验证
//验证的规则 $rule = [ 'name' => 'require|max:25', 'username' => 'require', 'password' => 'require', 'email'=>'require' ]; // 验证的错误信息 $msg = [ 'name.require' => '用户名不可以为空', 'name.max' => '用户名最多不能超过25个字符', 'username.require' => '用户昵称不可以为空', 'password.require' => '密码不可以为空', 'email.require' => '邮箱不可以为空', ]; //控制器验证 $result = $this->validate( $data,$rule); if(true !== $result){ // 验证失败 输出错误信息 $this->error($result,'/goods/goods/create'); }
方式三:验证器验证
<?php // goods 为模块名 namespace app\goods\validate; use think\Validate;
//Goods 为新创建的(Goods.php) class Goods extends Validate { protected $rule = [ 'name|姓名' => 'require|max:25', 'username|用户名' => 'require', 'password|密码' => 'require', 'email|邮箱' => 'require', 'img|头像' => 'require', 'age|年纪' => 'require', 'sex|性别' => 'require', 'account|账号' => 'require', 'confirmPasswrd|确认密码' => 'require', 'contrast|人脸对比' => 'require', 'branch|部门' => 'require', ]; protected $msg = [ 'name.require' => '姓名不可以为空', 'name.max' => '用户名最多不能超过25个字符', 'username.require' => '用户昵称不可以为空', 'password.require' => '密码不可以为空', 'email.require' => '邮箱不可以为空', 'img.require' => '用户头像不可以为空', 'age.require' => '年纪不可以为空', 'sex.require' => '性别不可以为空', 'comment.require' => '个人简介不可以为空', 'account.require' => '账号不可以为空', 'confirmPasswrd.require' => '确认密码不可以为空', 'contrast.require' => '人脸对比不可以为空', 'branch.require' => '部门不可以为空', ]; //验证的场景 protected $scene = [ 'user'=>['account','password','confirmPassword','contrast','branch'], 'order' => ['username', 'img','sex','age','comment'], 'administrators'=>['name','username','password','email'] ]; }
控制器书写:
//验证器验证 $validate = Loader::validate('Goods'); if(!$validate->scene('administrators')->check($data)){ $this->error($validate->getError(),'/goods/goods/create'); }