mpyw / laravel-unique-violation-detector
此包已 废弃 并不再维护。没有建议替代包。
检测来自 PDOException 的主键/唯一键或约束违反错误。
v1.1.3
2023-08-23 04:04 UTC
Requires
- php: ^8.0
- ext-pdo: *
- illuminate/contracts: ^9.0 || ^10.0 || ^11.0
- illuminate/database: ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0
- mpyw/unique-violation-detector: ^1.0
Requires (Dev)
- orchestra/testbench: *
- orchestra/testbench-core: >=7.0
- phpunit/phpunit: >=9.5
README
注意
已废弃:由于 Laravel 的变化(v10.20.0),此库的功能已集成到 Laravel 核心中。 从现在开始,当存在唯一约束违反时,将抛出 Illuminate\Database\UniqueConstraintViolationException 异常,因此无需使用此库进行判断。只需使用 catch 或 instanceof 进行检查即可。尽管在某些部分的内部判断逻辑严格不同,但在大多数情况下应该可以替换而不存在问题。
从 PDOException 检测 主键/唯一键或约束违反 错误。
要求
| 包 | 版本 |
|---|---|
| PHP | ^8.0 |
| Laravel | ^9.0 || ^10.0 |
| mpyw/unique-violation-detector | ^1.0 |
支持的连接
| 数据库 | 连接类 |
|---|---|
| MySQL | Illuminate\Database\MySqlConnection |
| PostgreSQL | Illuminate\Database\PostgresConnection |
| SQLite | Illuminate\Database\SQLiteConnection |
| SQLServer | Illuminate\Database\SqlServerConnection |
您也可以通过以下方式添加自定义解析器:
Mpyw\LaravelUniqueViolationDetector\Facades\Unique::resolverFor()Mpyw\LaravelUniqueViolationDetector\DetectorDiscoverer::resolverFor()
安装
composer require mpyw/laravel-unique-violation-detector
使用
您可以通过多种方式检测唯一违反。
use Mpyw\LaravelUniqueViolationDetector\UniqueViolationDetector; use Mpyw\LaravelUniqueViolationDetector\Facades\Unique; // Detect on a specific connection via explicitly created detector instance // (Recommended usage in libraries) $violated = (new UniqueViolationDetector($connection))->violated($e); // Detect on the default connection $violated = Unique::violated($exception); // Detect on a specific connection via Facade $violated = Unique::forConnection($connection)->violated($e);