rewake/lumen-validation

dev-develop / 0.1.1.x-dev 2019-11-01 15:09 UTC

This package is auto-updated.

Last update: 2024-09-29 04:42:49 UTC


README

注意:此包适用于Lumen v5。对于Lumen v6,请使用https://github.com/rewake/lumen-validation-v6

此库为illuminate/validation包提供增强,可以验证对象和类,而不仅仅是数组。默认的Lumen验证器已被包装,因此所有现有的验证功能应该都是可用的,然而这还没有完全测试。

还提供了一个ValidationRuleInterface,以便验证规则可以按使用和代码分离的便利性进行分类。

注册验证器

包括一个服务提供者,以便从app.php配置轻松注册验证服务。

$app->register(Rewake\Lumen\Providers\ValidationServiceProvider::class);

注意:此服务提供者将覆盖lumen中的默认app('validator')别名,目前尚未完全测试。如果您希望保持它们分开(或需要保持分开),您可以创建一个新的提供者来实现。

示例

public function register()
{
    // Register Validation Service
    $this->app->singleton(
        'validation_service',
        \Rewake\Lumen\Services\ValidationService::class
    );
}

示例验证类及使用方法

<?php
namespace App\Validation;

use Rewake\Lumen\Validation\ValidationRuleInterface;


class ExampleValidation implements ValidationRuleInterface
{
    public static function descriptor()
    {
        return [];
    }

    public static function rules()
    {
        return [
            "first" => [
                'required',
                'string'
            ],
            "last" => [
                'required',
                'string'
            ],
            "id" => [
                'required',
                'integer'
            ]
        ];
    }

    public static function messages()
    {
        return [];
    }
}

使用

app('validator')->validate($data, ExampleValidation::class);