商城网站网络公司,wordpress wp-config.php,达内网络营销,推广广告赚佣金注#xff1a;示例来源于官方手册
一、验证器定义
验证器用于对数据进行验证#xff0c;你可以理解为一个“层”#xff0c;在传入数据时可以使用这个层对数据进行验证#xff0c;这样就可以不用频繁的在方法中编写代码去验证#xff0c;只需要编写一个验证层即可#…注示例来源于官方手册
一、验证器定义
验证器用于对数据进行验证你可以理解为一个“层”在传入数据时可以使用这个层对数据进行验证这样就可以不用频繁的在方法中编写代码去验证只需要编写一个验证层即可此操作需要自己编写对应的代码本节只是介绍验证器的使用。
此时我们在 app 目录下新建一个 validate 文件夹在其中新建一个 User.php 假设用于用户传入的用户信息进行验证。 随后在 User.php 中编写如下代码
?php
namespace app\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 邮箱格式错误, ];}以上代码中可以看到当前 User 类继承至验证器 Validate 类其中 protected 的属性 rule 是表示验证规则为一个数组name 表示这个字段名 require 表示为必须并且 max 最大字符不能超过 25个age 是 number 类型数据在 1-120 之间同一个字段多个不同的规则使用 | 进行分隔若只有一个规则就如同 email 字段的规则是 email 表示是邮件字段。
在此还发现了 message 属性其中指定了每个规则验证不通过时的提示信息。
二、验证器使用方法
以下是一个最简单的验证器使用方法
public function userValidate(){try {validate(User::class)-check([name thinkphp,email thinkphpcom,]);} catch (ValidateException $e) {// 验证失败 输出错误信息dump($e-getError());}
}当验证器验证错误将会抛出异常并且会中断验证使用验证器很简单use 之后直接使用 validate(User::class)指定验证器后使用 check 方法即可。在 check 方法中需要传入一个数组数组值为需要验证字段的信息在以上示例中我的 email 是错误的邮箱编写格式此时将会抛出异常
三、设置批量验证
在以上一点中已经说过验证是会中断的若有多个错误信息时需要批量验证的话可以设置 batch 为 true 即可如下示例
public function userValidate(){try {validate(User::class)-batch(true)-check([name thinkphp,age 130,email thinkphpcom,]);} catch (ValidateException $e) {// 验证失败 输出错误信息dump($e-getError());}
}以上实例中我的 age 值明显大于了本身规则的限定在 120 以内所以此时将会抛出两个提示
四、自定义验证规则
验证器还支持自定义的验证规则例如以下示例首先是 user 验证器中
class User extends Validate
{protected $rule [name require|checkName:敏感字,,age number|between:1,120,email email, ];protected $message [name.require 名称必须,name.max 名称最多不能超过25个字符,age.number 年龄必须是数字,age.between 年龄只能在1-120之间,email 邮箱格式错误, ];// 自定义验证规则protected function checkName($value, $rule, $data[]){return $rule $value ? true : 敏感字符;}}此时修改了 rule 的验证规则 name其中有一个 checkName 规则是我们自定义的方法二冒号后面的敏感字是该方法的参数随后我们可以查看方法 checkName其中 value 是需要验证的字符rule 是敏感字data 是所有需要验证的信息数组接着我们传入对应的变量
try {validate(User::class)-batch(true)-check([name 敏感字,age 110,email 123163.com,]);
} catch (ValidateException $e) {// 验证失败 输出错误信息dump($e-getError());
}此时将会抛出异常 五、手动使用验证器
验证器还支持自己手动编写规则自行调用如下示例
public function userValidate(){$validate \think\facade\Validate::rule(age, number|between:1,120)-rule([name require|max:25,email email]);$data [name thinkphp,email thinkphp];if (!$validate-check($data)) {dump($validate-getError());}
}手动调用方式大致相同初始化规则创建验证器对象后在使用check 时进行check 即可。
更多验证规则可以查看手册https://www.kancloud.cn/manual/thinkphp6_0/1037629 且官方还提供了路由验证、令牌、注解验证 等验证可以自行查看官方手册本专栏只介绍一般方法。