安装 validation
composer require hyperf/validation
安装 translation
composer require hyperf/translation
生成 translation 配置文件
php bin/hyperf.php vendor:publish hyperf/translation
生成 validation 配置文件
php bin/hyperf.php vendor:publish hyperf/validation
生成验证器 LoginRequest
php bin/hyperf.php gen:request LoginRequest
控制器 app/Controller/IndexController.php
<?php
namespace App\Controller;
use Hyperf\HttpServer\Annotation\AutoController;
use App\Request\LoginRequest;
/**
* @
AutoController();
*/
class IndexController
{
public function index(LoginRequest $request){
$validateData = $request->validated();
return $validateData;
}
}
验证器添加规则 app/Request/LoginRequest.php
<?php
declare(strict_types=1);
namespace App\Request;
use Hyperf\Validation\Request\FormRequest;
class LoginRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*/
public function rules(): array
{
return [
'name'=>'required',
'password'=>'required'
];
}
}
添加验证器中间件
<?php
declare(strict_types=1);
return [
'http' => [
\Hyperf\Validation\Middleware\ValidationMiddleware::class
],
];
添加异常处理器
<?php
declare(strict_types=1);
return [
'handler' => [
'http' => [
Hyperf\HttpServer\Exception\Handler\HttpExceptionHandler::class,
App\Exception\Handler\AppExceptionHandler::class,
Hyperf\Validation\ValidationExceptionHandler::class
],
],
];
测试 1
curl 118.195.173.53:9501/index/index
name 字段是必须的
测试 2
curl 118.195.173.53:9501/index/index?name=huyongjian
password 字段是必须
测试 3
curl 118.195.173.53:9501/index/index?name=huyongjian\&password=123456
{
"name": "huyongjian",
"password": "123456"
}