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