horat1us / yii2-validation-exception
Yii2 验证异常
1.1.0
2022-11-14 14:21 UTC
Requires
- php: >=7.4
- yiisoft/yii2: ^2.0.40
Requires (Dev)
- horat1us/yii2-asset-free: ^1.0
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-09-14 18:42:19 UTC
README
此包增加了额外的模型验证方法和异常。
主要目的是防止在模型验证过程中出现错误(忘记检查验证结果等)。
之前在 horat1us/yii2-base 包中提供了 ModelExceptionInterface 和 ModelException 实现。
安装
composer require horat1us/yii2-validation-exception:^1.0
结构
- Validation\Failure - 验证错误的通用接口。
当 ActiveRecord 在项目仓库外部实现时(与依赖项一起工作)应使用。
- Validation\ExceptionTrait - 实现 Failure 并提供静态失败工厂。
- Validation\Exception - 使用 ExceptionTrait 的 Failure 实现。
当 ActiveRecord 在项目仓库中实现并可能实现接口和使用特性时使用。
- Validation\Failure\ModelInterface - 扩展
\yii\base\Model
并包含 validateOrFail 和 checkOrFail 方法。- Model - 包含实现的特性。
- [Validation\Failure\ActiveRecordInterface] - 扩展
\yii\db\ActiveRecord
并包含 saveOrFail 方法。- ActiveRecord - 包含实现的特性。
示例
带有模型和活动记录扩展
<?php namespace App; use Horat1us\Yii\Validation; use yii\base; class Model extends base\Model implements Validation\Failure\ModelInterface { use Validation\Failure\Model; public $id; public function rules(): array { return [ [['id',], 'required',], ]; } } $model = new Model; try { $model->validateOrFail(); } catch (Validation\Failure $failure) { // handle }
带有异常工厂
<?php namespace App; use Horat1us\Yii\Validation; use yii\base; class Model extends base\Model { /** @var string */ public $id; public function rules() { return [ [['id',], 'required',], ]; } } $model = new Model; try { Validation\Exception::validateOrThrow($model); } catch (Validation\Failure $failure) { // handle }