Hyperf使用TP的验证组件

快速引入

composer require kumaomao/validate

移植于ThinkPHP验证器

普通使用方法和tp一样

同时本组件也支持hyperf的注解

@Validate()

参数

validate 验证器 例:validate=AdminValidate::class

scene 场景

batch 是否批量验证 默认false

throws 是否主动抛出错误 默认true,当值为false不会主动抛出错误,可通过获取$this->request->getAttribute('validate')的值来手动抛出错误,该值为null时表示通过验证

filter 是否过滤多余字段 默认true 只获取验证的字段 通过$this->request->getParsedBody()获取

例: 发布验证器语言文件

@validate(validate=AdminValidate::class,scene="login",throws=false)

hyperf国际化组件支持 发布验证器语言文件

 php bin/hyperf.php vendor:publish kumaomao/validate

默认发布后语言包地址

/storage
    /languages
        /en
            validation.php
        /zh_CN
            validation.php

使用示例:

先定义一个验证器,方法与TP类似

<?php


namespace App\Http\Admin\Validate;



use Kumaomao\Validate\Validate\Validate;

class LoginValidate extends Validate
{
    protected $rule = [
        'username|用户名' =>'require|max:16|min:5',
        'password' => 'require|max:16|min:5',
    ];

    protected $scene = [
        'login' => ['username','password']
    ];


}

在方法中使用(展示的为注解方式,非注解方式使用与TP类似):

 /**
     * 用户登录方法
     * @param string username
     * @param string password
     * @RequestMapping(path="login",methods="post")
     * @Validate(validate=LoginValidate::class,scene="login")
     */
    public function login(){
        //获取通过验证的值
        $validata = $this->request->getParsedBody();
        $this->admin->login($validata['username'],$validata['password']);
        return json(['code'=>1,'msg'=>'登录成功']);
    }

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值