其他分享
首页 > 其他分享> > hyperf 验证器

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

标签:index,php,验证,hyperf,translation,password,class
来源: https://www.cnblogs.com/hu308830232/p/15324575.html