tp5验证器validate使用笔记!

2020-04-04  本文已影响0人  DragonersLi
controller同级目录创建validate目录,新建UserRegister.php
<?php
namespace app\admin\validate;

use think\Validate; #具体使用方法查看源码

class UserRegister extends Validate
{
//验证规则
    protected $rule = [
        'username'         => 'require|unique:user',
        'password'         => 'confirm:confirm_password',
        'confirm_password' => 'confirm:password', 
        'verify'   => 'require|captcha'
        'mobile'           => 'number|length:11',
        'email'            => 'require|email',
        'status'           => 'require|number|egt:0',
    ];
//提示信息
    protected $message = [
        'username.require'         => '请输入用户名',
        'username.unique'          => '用户名已存在',
        'password.confirm'         => '两次输入密码不一致',
        'confirm_password.confirm' => '两次输入密码不一致', 
        'verify.require'           => '请输入验证码',
        'verify.captcha'           => '验证码不正确',
        'mobile.number'            => '手机号格式错误',
        'mobile.length'            => '手机号长度错误',
        'email.email'              => '邮箱格式错误',
        'status.require'           => '请选择状态',
        'status.number' => 'status必须是大于等于0的数字',
        'status.egt' => 'status必须是大于等于0的数字'
    ];

 //验证场景
    protected $scene = [
        'add' => ['user','email','pwd','status'],
        'edit' => ['user','email','status']
    ];
}

controller调用validate示例:
    /**
     * 用户注册
     */
    public function add()
    {
        if ($this->request->isPost()) {
            $data            = $this->request->param();
            $validate_result = $this->validate($data, 'UserRegister');//字段验证
            !$validate_result  &&  $this->error($validate_result);//验证失败提示错误信息
            $this->model->allowField(true)->save($data)
                ? $this->success('保存成功')
                : $this->error('保存失败');  
        }else{
            return $this->fetch('add', []);
        }

    }
tp3验证demo
//tp3验证demo
         //对数据进行规则验证
        $validate =  validate('User');
        !$validate->check($data) && $this->error($validate->getError());
         // 获取表单上传文件 例如上传了001.jpg
        $file = request()->file('photo');
         // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['size'=>15678,'ext'=>'jpg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'uploads'); 
          
        !$info && $this->error($file->getError());// 上传失败获取错误信息
     
        // 成功上传后 获取上传信息 
         echo $info->getExtension();// 输出 jpg 
         echo $info->getSaveName(); // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg 
         echo $info->getFilename();  // 输出 42a79759f284b767dfcb2a0197904287.jpg 
        print_R($data);
上一篇 下一篇

猜你喜欢

热点阅读