spoorsny/laravel-model-validating-observer

一个观察器,在Eloquent模型实例被持久化到数据库之前对其进行验证。

v2.0.0 2024-08-08 15:53 UTC

This package is auto-updated.

Last update: 2024-09-08 15:56:37 UTC


README

Repository Banner

Latest Version on Packagist Total Downloads GitHub Tests Action Status PHPUnit Code Coverage

验证Eloquent模型的观察器

一个观察器,通过抛出 ValidationException 来在Eloquent模型实例被持久化到数据库之前对其进行验证。

安装

使用 Composer 安装此包。

composer require spoorsny/laravel-model-validating-observer

用法

\Illuminate\Database\Eloquent\Attributes\ObservedBy 属性添加到您的模型中,并将其参数设置为 \Spoorsny\Laravel\Observers\ValidateModel::class

在您的模型中实现 \Spoornsy\Laravel\Contracts\SelfValidatingModel 接口,通过添加一个公共的静态方法到您的模型中,命名为 validationRules(),它返回一个包含验证规则和自定义信息的关联数组,这些规则和信息适用于模型属性。

use Illuminate\Database\Eloquent\Attributes\ObservedBy;
use Illuminate\Database\Eloquent\Model;

use Spoorsny\Laravel\Contracts\SelfValidatingModel;
use Spoorsny\Laravel\Observers\ValidateModel;

#[ObservedBy(ValidateModel::class)]
class Car extends Model implements SelfValidatingModel
{
    public static function validationRules(): array
    {
        return [
            'rules' => [
                'make' => 'required|string',
                'model' => 'required|string',
            ],
            'messages' => [
                'make.required' => 'We need to know the make of the car.',
            ],
        ];
    }
}

在Eloquent触发的 saving 事件期间,观察器将检查您的模型实例是否符合验证规则。如果验证失败,将抛出 \Illuminate\Validation\ValidationException,防止无效模型实例的持久化。

贡献

要为此包做出贡献,请参阅 贡献指南

许可证

版权 © 2024 Geoffrey Bernardo van Wyk https://geoffreyvanwyk.dev

此文件是 spoorsny/laravel-model-validating-observer 包的一部分。

spoorsny/laravel-model-validating-observer 包是免费软件:您可以重新分发它,也可以在 GNU 通用公共许可证的条款和条件下修改它,该许可证由自由软件基金会发布,可以是许可证的第 3 版,也可以是您选择的任何较新版本。

spoorsny/laravel-model-validating-observer 包的目的是希望它有用,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。

您应该已收到 spoorsny/laravel-model-validating-observer 包的 GNU 通用公共许可证副本。如果没有,请参阅 https://gnu.ac.cn/licenses/

要获取许可证副本,请参阅此存储库中的 LICENSE 文件。