TP框架验证器及独立验证用法

验证类:

<?php

 

namespace app\validate;

 

use think\Validate;

 

class User extends Validate

{

    protected $rule = [

        'name|姓名' => [

            'require'   => 'require',

            'min'       => 5,

            'max'       => 20

        ],

        'email|邮箱' => [

            'require',

            'email' => 'email'

        ],

        'password|密码' => [

            'require',

            'min' => 3,

            'max' => 20,

            'alphaNum'

        ],

        'mobile|手机' => [

            'require',

            'mobile'

        ]

    ];

}

 

 

控制器中写法

 

<?php

namespace app\index\controller;

 

use think\Controller;

// use app\validate\User; //常规写法

 

use app\facade\User;//使用静态马甲写法

 

// use think\Validate;//常规写法

use think\facade\Validate;

class Demo9 extends Controller{ 

    public function test1(){

        $data=[

            'name'=>'Peter',

            'email'=>'111@qq.com',

            'password'=>'123abc',

            'mobile'=>'18709018976'

        ];

 

        // $validate=new User;

        // if(!$validate->check($data)){

        //    return $validate->getError();

        // }

        // return '验证通过';

 

        //使用当前验证器的静态代理

        if(!User::check($data)){

           return User::getError();

        }

        return '验证通过';

    }

 

    /**

     * 调用控制器中的validate方法进行验证:使用用户自定义的验证器

     */

    public function test2(){

        // $this->validata($data,$validate);

        $data=[

            'name'=>'Peter',

            'email'=>'111@qq.com',

            'password'=>'123456',

            'mobile'=>'18709018976'

        ];

        $validate='app\validate\User';

        $res=$this->validate($data,$validate);

        if(true!==$res){

            return $res;

        }

        return '验证成功';

    }

 

    /**

     * 验证器总结

     * 1.验证器是一个自定义的类,必须继承框架的验证类think\Validate.php

     * 2.验证器可以创建在application目录下的任何一个可以访问的(控制器可以访问,不是指外表URL访问

     * ,只需要指定正确的命名空间即可)目录下

     * 3.验证器就是完成框架的think\Validate.php类中protected $rule=[]初始化

     * 4.在控制器中直接实例化,调用check()完成验证

     * 5.也可以创建一个自定义的静态代理来统一验证方法的调用方式

     * */

 

     /**

      * 独立验证:使用的是验证器类think\Validate中的rule()方法,不依赖用户自定义的验证器类

      *rule()方法实际上就是完成给当前类的protected $rule=[]初始化

      */

      public function test3(){

        $rule = [

            'name|姓名' => [

                'require'   => 'require',

                'min'       => 5,

                'max'       => 20

            ],

            'email|邮箱' => [

                'require',

                'email' => 'email'

            ],

            'password|密码' => [

                'require',

                'min' => 3,

                'max' => 20,

                'alphaNum'

            ],

            'mobile|手机' => [

                'require',

                'mobile'

            ]

        ];   

        $data=[

            'name'=>'Peter',

            'email'=>'111@qq.com',

            'password'=>'123333##3456',

            'mobile'=>'18709018976'

        ]; 

        

        Validate::rule($rule);

 

        if(!Validate::check($data)){

            return Validate::getError();

        }

        return '验证成功';

      }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值