快速引入
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'=>'登录成功']);
}