php笔记之tp框架_验证器和独立验证

验证器类

<?php

namespace app\validate;

use think\Validate;

/**
 * 验证器类
 * 自定义的验证器类需要继承Validate
 * 主要就是给rule[]初始化验证规则
 * 在控制器中实例化调用check()传入数据即可验证
 * 也可以静态代理实现
 */
class UserValidate extends Validate
{
    //验证规则 'name|名字'可加入别名
    protected $rule = [
        'name|名字'=>[
            'require',
            'max'=>'20',
            'min'=>'2'
        ],
        //属性可以重复写使得看上去整齐
        'email|邮箱'=>[
            'require'   =>  'require',
            'email'     =>  'email'
        ],
        'password|密码' =>[
            'require'   =>  'require',
            'min'       =>  '3',
            'max'       =>  '12',
            'alphaNum'  =>  'alphaNum'
        ],
    ];
}

控制器

<?php

namespace app\index\controller;

use app\validate\UserValidate;
use app\facade\User;
use think\Controller;
use think\Facade\Validate;

class Index extends Controller
{
    /**
     * 验证器
     *  使用validate类的rule属性
     *  数据一般通过依赖注入传入对象给验证器
     */
    public function vali()
    {
        //数据
        $da = [
            'name'=>'孙尚香',
            'email'=>'139@qq.com',
            'password'=>'123qwe'
        ];

        //创建对象方式
//        $vde = new UserValidate();
//        if (!$vde->check($da)) {
//            return $vde->getError();
//        }
//        return '验证通过';

        //静态代理方式
//        if (!User::check($da)) {
//            return User::getError();
//        }
//        return '验证通过';

        //调用控制器中的validate方法进行验证
        //规则
        $rule = [
            'name|名字'=>[
                'require',
                'max'=>'20',
                'min'=>'2'
            ],
            //可以重复写使得看上去整齐
            'email|邮箱'=>[
                'require'  =>  'require',
                'email'    =>  'email'
            ],
            'password|密码' =>[
                'require'  =>  'require',
                'min'      =>'3',
                'max'      =>'12',
                'alphaNum'
            ],
        ];
    }

    /**
     * 独立验证器
     *  不依赖与验证器类
     */
     function va() {
        //验证规则
         $rule = [
            'name|名字'=>[
                'require',
                'max'=>'20',
                'min'=>'2'
            ],
            //可以重复写使得看上去整齐
            'email|邮箱'=>[
                'require'  =>  'require',
                'email'    =>  'email'
            ],
            'password|密码' =>[
                'require'  =>  'require',
                'min'      =>'3',
                'max'      =>'12',
                'alphaNum'
            ],
        ];
         //通过rule()给rule[]初始化
         Validate::rule($rule);

         //验证数据
         $da = [
             'name'=>'孙尚香',
             'email'=>'139@qq.com',
             'password'=>'123qwe'
         ];

         //验证
         if (!Validate::check($da)) {
             return Validate::getError();
         }
         return '验证通过';
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值