hyperf 驗證器


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM