博客列表 >编写验证器-2018年5月25日

编写验证器-2018年5月25日

往昔流逝的博客
往昔流逝的博客原创
2018年05月29日 17:06:54662浏览
  1. 先创建一个验证类:

    <?php
    namespace app\validate;
    use think\Validate;
    class Staff extends Validate
    {
        //创建验证规则
        //以属性的方式进行配置,属性不能更改
        protected $rule = [
            'name'=>
    'require|min:5|max:15',
            'sex' => 'in:0,1',
        ];
        //错误信息可以自定义:
        protected $message = [
            'name.require' => '用户姓名不能为空',
            'name.min' => '姓名不能少于5个字符',
            'name.max' => '姓名不能大于15个字符',
            'sex.in' => '性别只能选择男或女',
        ];
    }

  2. 然后在控制器里调用:

    <?php
    namespace app\index\controller;
    use think\Controller;
    use app\validate\Users; //导入验证器
    use think\Validate;
    class Verify extends Controller
    {
        //验证器: 直接实例化验证器完成验证
        public function demo1()
        {
            //准备要验证的数据
            $data = [
                'name'=>
    'Line',
                'sex' => 3,
            ];
            $validate = new Users();
            if (!$validate->check($data)) {
                dump($validate->getError());
            } else {
                return '验证通过';
            }
        }
        //验证器: 使用控制器内容的验证对象来完成验证: $this->validate($data, $rule)
        public function demo2()
        {
            //准备要验证的数据
            $data = [
                'name'=>'validate',
                'sex' => 0,    
            ];
            $rule = 'app\validate\Users';
            $rule = [
                'age' => 'between:10,50',
            ];
            $message = [
                'age.between' => '年龄必须在10到50之间'
            ];
            $data = ['age'=>8];
            // $res = $this->validate($data,$rule);
            $res = $this->validate($data,$rule,$message);
            if (true !== $res) {      //验证成功返回true,否则返回错误信息    
                return $res;
            }
            return '验证成功';
        }
        //独立验证: 直接实例化think\Validate.php进行验证
        public function demo3()
        {
            //主要是通过Validate::make()和check()进行验证
            //make($rule,$mess):创建验证规则与错误信息
            //check($data)完成数据验证
            //1.创建验证规则
            $rule = [
                'age' => 'require|between:20,60'
            ];
            //2.创建错误信息
            $mess = [
                'age.require' => '年龄必须填写',
                'age.between' => '年龄必须在20到60之间'
            ];
            //3.创建验证数据
            $data = ['age' => 13];
            //初始化验证器类,并返回验证器实例
            $validate = Validate::make($rule, $mess);
            $res = $validate->check($data);
            return $res ? '验证通过' : $validate->getError();
        }
    }

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议