TP6中验证器的使用
发布时间:2021-12-05 16:45:00
栏目:程序猿
阅读量:4058
作者:webcms
TP6中验证器的使用
在目录app目录下,生成 validate目录,然后创建相应的验证器。
验证器代码:app/validate/User.php
<?php
declare (strict_types = 1);
namespace app\validate;
use think\Validate;
class User extends Validate
{
/**
* 定义验证规则
* 格式:'字段名' => ['规则1','规则2'...]
*
* @var array
*/
protected $rule = [
'user_name' => 'require|length:6,20',
'user_mobile' => 'mobile',
'user_truename' => 'chs',
'user_idcard' => 'idCard'
];
/**
* 定义错误信息
* 格式:'字段名.规则名' => '错误信息'
*
* @var array
*/
protected $message = [
'user_name.require' => '账号不能为空',
'user_name.length' => '账号长度需在6-20个字符之间',
'user_mobile' => '手机号格式不正确',
'user_truename' => '姓名必须为中文',
'user_idcard' => '身份证号格式不正确'
];
}
控制器代码
if(request()->isAjax()) {
$user = new muser();
$data = input('post.');
$val= validate('user');
$result = $val->check($data);
if ($result === true)
{
$res =$user->addUser($data);
if ($res != false ) {
return show(config('status.success'), '添加成功!');
} else {
return show(config('status.error'), '添加失败!');
}
}else{
return show(config('status.error'), $val->getError());
}
}
验证规则:
1、require 验证某个字段必须
2、number 验证某个字段的值是否是纯数字
3、integer 验证某个字段的值是否为整数
4、float 验证某个字段的值是否为浮点数字
5、boolean 验证某个字段的值是否为布尔值
6、email 验证某个字段的值是否为email地址
7、array 验证某个字段的值是否为数组
8、accepted 验证某个字段是否为为 yes, on, 或是 1
9、date 验证值是否为有效的日期
10、alpha 验证某个字段的值是否为纯字母
11、alphaNum 验证某个字段的值是否为字母和数字
12、alphaDash 验证某个字段的值是否为字母和数字,下划线_及破折号-
13、chs 验证某个字段的值只能是汉字
14、chsAlpha 验证某个字段的值只能是汉字、字母
15、chsAlphaNum 验证某个字段的值只能是汉字、字母和数字
16、chsDash 验证某个字段的值只能是汉字、字母、数字和下划线_及破折号
17、cntrl 验证某个字段的值只能是控制字符(换行、缩进、空格)
18、graph 验证某个字段的值只能是可打印字符(空格除外)
19、print 验证某个字段的值只能是可打印字符(包括空格)
20、lower 验证某个字段的值只能是小写字符
21、upper 验证某个字段的值只能是大写字符
22、space 验证某个字段的值只能是空白字符
23、xdigit 验证某个字段的值只能是十六进制字符串
24、activeUrl 验证某个字段的值是否为有效的域名或者IP
25、url 验证某个字段的值是否为有效的URL地址
26、ip 验证某个字段的值是否为有效的IP地址
27、dateFormat:format 验证某个字段的值是否为指定格式的日期 例如:
'create_time'=>'dateFormat:y-m-d'
28、mobile 验证某个字段的值是否为有效的手机
29、idCard 验证某个字段的值是否为有效的身份证格式
30、macAddr 验证某个字段的值是否为有效的MAC地址
31、zip 验证某个字段的值是否为有效的邮政编码
32、in 验证某个字段的值是否在某个范围 例如:'num'=>'in:1,2,3'
33、notIn 验证某个字段的值不在某个范围
34、between 验证某个字段的值是否在某个区间
35、notBetween 验证某个字段的值不在某个范围
36、length:num1,num2 验证某个字段的值的长度是否在某个范围
37、max:number 验证某个字段的值的最大长度
38、min:number 验证某个字段的值的最小长度
39、confirm 验证某个字段是否和另外一个字段的值一致
例如:'repassword'=>'require|confirm:password'
自动匹配验证规则:
如password和password_confirm是自动相互验证
只需要使用 'password'=>'require|confirm'
表单令牌
验证规则支持对表单的令牌验证:
<input type="hidden" name="__token__" value="{:token()}" />
//也可以直接使用
{:token_field()}
token的验证很简单 就是直接在验证规则后面添加一个token就可以了
protected $rule = [
'user_name' => 'require|length:6,20|token',
'user_mobile' => 'mobile',
'user_truename' => 'chs',
'user_idcard' => 'idCard'
];
如果没有其他的验证规则也可以直接写成:
protected $rule = [
'__token__' => 'token',
];
好了,这就是我经常会用到的一些验证规则,如果有不对的地方,还欢迎指正,谢谢。
评论: