wamesk/laravel-validator

Laravel 扩展验证器。

0.1.0 2023-09-19 10:53 UTC

This package is auto-updated.

Last update: 2024-09-06 16:05:58 UTC


README

扩展默认 Laravel 验证器的 Laravel 包

安装

composer require wamesk/laravel-validator

发布翻译

php artisan vendor:publish --provider="Wame\Validator\LaravelValidatorServiceProvider" --tag="translations"

验证器

此包默认使用的验证器。它通过链式调用函数和获取响应来工作。响应由 wamesk/laravel-api-response 包的函数生成。要更好地了解响应的工作方式,请查看响应包的文档这里

验证函数

这是一个最终函数。总是最后执行。它需要验证数据和规则。有关规则的文档点击这里

使用示例

$data = ['email' => 'example@gmail.com', 'password' => 'password'];

$validator = Validator::validate($data, [
    'email' => 'email|required|max:255',
    'password' => 'required|string'
]);
if ($validator) return $validator;

在验证错误的情况下,它将返回

{
    "data": null,
    "code": null,
    "errors": {
        "email": [
            "validation.required"
        ]
    },
    "message": null
}

代码函数

此函数在响应中添加内部代码。您可以传递第二个参数来更改消息翻译的前缀。

使用示例

$data = ['email' => 'example@gmail.com', 'password' => 'password'];

$validator = Validator::code('1.2')->validate($data, [
    'email' => 'email|required|max:255',
    'password' => 'required|string'
]);
if ($validator) return $validator;

在验证错误的情况下,它将返回

{
    "data": "1.2",
    "code": null,
    "errors": {
        "email": [
            "The email field is required"
        ]
    },
    "message": "api.1.2"
}

消息函数

此函数添加自定义验证响应。您需要传递对象的键是字段和它验证。作为值,您传递如示例中所示的自定义消息。

使用示例

$data = ['email' => 'example@gmail.com', 'password' => 'password'];

$validator = Validator::code('1.2')
    ->messages([
        'email.required' => 'Email is required'
    ])
    ->validate($data, [
        'email' => 'email|required|max:255',
        'password' => 'required|string'
    ]);
if ($validator) return $validator;

在验证错误的情况下,它将返回

{
    "data": "1.2",
    "code": null,
    "errors": {
        "email": [
            "Email is required"
        ]
    },
    "message": "api.1.2"
}

状态码函数

此函数不会在视觉上更改响应,但会更改响应的状态码。默认状态码是 400 (Bad Request)。如果您想链式调用所有函数,它可以看起来像这样。状态码总是整数。

Validator::statusCode($statusCode)->code($code)->messages($messages)->validate($data, $rules);

规则

此包还为您的项目提供以下自定义规则。

使用

Validator::code($code)->validate($data, [
    'id' => [
        new Exists(User::class),
    ]
]);

存在规则

此规则验证实体是否存在。它需要在构造函数中提供模型类。首先,它验证数据库中是否存在具有此参数的实体。其次,它检查它是否未被删除,如果是,则返回验证错误。您可以传递第二个 (可选) 参数 列名

new \Wame\Validator\Rules\Exists(User::class, 'id')

整数规则

此规则验证属性是否为整数。您可以在构造函数中传递额外的数据(最小值,最大值)来创建可接受整数的范围。

new \Wame\Validator\Rules\IsInteger(min: 10, max: 100)

字符串规则

此规则验证属性是否为字符串。您可以在构造函数中传递额外的数据(最小值,最大值)来验证字符串的长度。

new \Wame\Validator\Rules\IsString(min: 10, max: 100)

数组规则

此规则验证属性是否为数组。您可以在构造函数中传递额外的数据(最小值,最大值)来验证数组的长度。

new \Wame\Validator\Rules\IsString(min: 10, max: 100)

邮箱规则

验证电子邮件格式,检查域名存在,并在 Laravel 中可选地阻止临时电子邮件域名。您可以通过传递额外的数据(true,false)来启用某些功能。

new \Wame\Validator\Rules\IsEmail(domainMustExist: false, disableTempMail: false)