一个网站建设爱好者,技术交流,相互学习
当前位置:首页>>程序猿
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',
    ];

好了,这就是我经常会用到的一些验证规则,如果有不对的地方,还欢迎指正,谢谢。


评论:

IT视频教程
Copyright © web小工匠 保留所有权利. 渝ICP备15008469号 网站地图