文章目录
- 与laravel的表单验证基本相同
- composer require hyperf/validation
- <?phpreturn [ 'http' => [ HyperfValidationMiddlewareValidationMiddleware::class ], ];
- <?phpreturn [ 'handler' => [ 'http' => [ // 验证器的异常处理 HyperfValidationValidationExceptionHandler::class,HyperfHttpServerExceptionHandlerHttpExceptionHandler::class, AppExceptionHandlerAppExceptionHandler::class, ], ], ];
- php bin/hyperf.php vendor:publish hyperf/translation php bin/hyperf.php vendor:publish hyperf/validation
- php bin/hyperf.php gen:request CreateUserRequest定义规则<?php /** * 表单的验证类 */ namespace AppRequest;use HyperfValidationRequestFormRequest;class CreateUserRequest extends FormRequest { /** * 是否验证完成后允许放行 * @return bool */ public function authorize(): bool { return true; }/** * 验证规则 * @return array|string[][] */ public function rules(): array { return [ 'name' => ['required', 'string'], 'password' => ['required', 'min:6'] ]; }/** * 验证的各字段的含义 * @return array|string[] */ public function attributes(): array { return [ 'name' => '用户名', 'password' => '密码' ]; } }依赖注入的方式验证<?php /** * 控制器 */ namespace AppController;use AppRequestCreateUserRequest;class IndexController extends AbstractController { public function index(CreateUserRequest request) { // 返回验证通过的字段 returnrequest->validated(); } }使用:通过表单验证对象<?php namespace AppController;class IndexController extends AbstractController { /** * @HyperfDiAnnotationInject() * @var HyperfValidationContractValidatorFactoryInterface */ protected validationFactory;public function index() { // 表演的验证规则validator = this->validationFactory->make(this->request->all(), [ 'name' => ['required', 'string'], 'password' => ['required', 'min:6'], ] ); // 判断是否有出错 if (validator->fails()){ // 错误信息 return [ 'error' =>validator->errors()->first() ]; }// 返回验证通过的字段 return $validator->validated(); } }注:自定义验证属性
与laravel的表单验证基本相同
composer require hyperf/validation
composer require hyperf/validation
<?php
return [
'http' => [
HyperfValidationMiddlewareValidationMiddleware::class
],
];
<?php
return [
'http' => [
HyperfValidationMiddlewareValidationMiddleware::class
],
];
<?php
return [
'handler' => [
'http' => [
// 验证器的异常处理
HyperfValidationValidationExceptionHandler::class,
HyperfHttpServerExceptionHandlerHttpExceptionHandler::class,
AppExceptionHandlerAppExceptionHandler::class,
],
],
];
<?php
return [
'handler' => [
'http' => [
// 验证器的异常处理
HyperfValidationValidationExceptionHandler::class,
HyperfHttpServerExceptionHandlerHttpExceptionHandler::class,
AppExceptionHandlerAppExceptionHandler::class,
],
],
];
php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation
php bin/hyperf.php vendor:publish hyperf/translation
php bin/hyperf.php vendor:publish hyperf/validation
php bin/hyperf.php gen:request CreateUserRequest
- 定义规则
<?php
/**
* 表单的验证类
*/
namespace AppRequest;
use HyperfValidationRequestFormRequest;
class CreateUserRequest extends FormRequest
{
/**
* 是否验证完成后允许放行
* @return bool
*/
public function authorize(): bool
{
return true;
}
/**
* 验证规则
* @return array|string[][]
*/
public function rules(): array
{
return [
'name' => ['required', 'string'],
'password' => ['required', 'min:6']
];
}
/**
* 验证的各字段的含义
* @return array|string[]
*/
public function attributes(): array
{
return [
'name' => '用户名',
'password' => '密码'
];
}
}
- 依赖注入的方式验证
<?php
/**
* 控制器
*/
namespace AppController;
use AppRequestCreateUserRequest;
class IndexController extends AbstractController
{
public function index(CreateUserRequest request)
{
// 返回验证通过的字段
returnrequest->validated();
}
}
- 使用:通过表单验证对象
<?php
namespace AppController;
class IndexController extends AbstractController
{
/**
* @HyperfDiAnnotationInject()
* @var HyperfValidationContractValidatorFactoryInterface
*/
protected validationFactory;
public function index()
{
// 表演的验证规则validator = this->validationFactory->make(this->request->all(),
[
'name' => ['required', 'string'],
'password' => ['required', 'min:6'],
]
);
// 判断是否有出错
if (validator->fails()){
// 错误信息
return [
'error' =>validator->errors()->first()
];
}
// 返回验证通过的字段
return $validator->validated();
}
}
php bin/hyperf.php gen:request CreateUserRequest
<?php
/**
* 表单的验证类
*/
namespace AppRequest;
use HyperfValidationRequestFormRequest;
class CreateUserRequest extends FormRequest
{
/**
* 是否验证完成后允许放行
* @return bool
*/
public function authorize(): bool
{
return true;
}
/**
* 验证规则
* @return array|string[][]
*/
public function rules(): array
{
return [
'name' => ['required', 'string'],
'password' => ['required', 'min:6']
];
}
/**
* 验证的各字段的含义
* @return array|string[]
*/
public function attributes(): array
{
return [
'name' => '用户名',
'password' => '密码'
];
}
}
<?php
/**
* 控制器
*/
namespace AppController;
use AppRequestCreateUserRequest;
class IndexController extends AbstractController
{
public function index(CreateUserRequest request)
{
// 返回验证通过的字段
returnrequest->validated();
}
}
<?php
namespace AppController;
class IndexController extends AbstractController
{
/**
* @HyperfDiAnnotationInject()
* @var HyperfValidationContractValidatorFactoryInterface
*/
protected validationFactory;
public function index()
{
// 表演的验证规则validator = this->validationFactory->make(this->request->all(),
[
'name' => ['required', 'string'],
'password' => ['required', 'min:6'],
]
);
// 判断是否有出错
if (validator->fails()){
// 错误信息
return [
'error' =>validator->errors()->first()
];
}
// 返回验证通过的字段
return $validator->validated();
}
}
注:自定义验证属性


