spoorsny / laravel-model-validating-observer
一个观察器,在Eloquent模型实例被持久化到数据库之前对其进行验证。
Requires
- php: ^8.3
Requires (Dev)
- ext-xdebug: *
- fakerphp/faker: ^1.23
- laravel/framework: ^11.9
- laravel/pint: ^1.13
- laravel/sail: ^1.26
- laravel/tinker: ^2.9
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.0
- phpunit/phpunit: ^11.0.1
- rregeer/phpunit-coverage-check: ^0.3.1
This package is auto-updated.
Last update: 2024-09-08 15:56:37 UTC
README
验证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 文件。