安裝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"
}