Skip to content
This repository has been archived by the owner on Nov 21, 2023. It is now read-only.

Detect primary/unique key or constraint violation errors from PDOException.

License

Notifications You must be signed in to change notification settings

mpyw/laravel-unique-violation-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laravel Unique Violation Detector Build Status Coverage Status

Caution

ABANDONED: The functionalities of this library have been integrated into the Laravel core due to changes in Laravel v10.20.0. From now on, the Illuminate\Database\UniqueConstraintViolationException exception class will be thrown when there is a unique constraint violation, so there is no need to use this library for judgment. Simply checking with catch or instanceof should be sufficient. Although the internal judgment logic is strictly different in some parts, it should be replaceable without any problems in most cases.

Detect primary/unique key or constraint violation errors from PDOException.

Requirements

Package Version
PHP ^8.0
Laravel ^9.0 || ^10.0
mpyw/unique-violation-detector ^1.0

Supported Connections

Database Connection Class
MySQL Illuminate\Database\MySqlConnection
PostgreSQL Illuminate\Database\PostgresConnection
SQLite Illuminate\Database\SQLiteConnection
SQLServer Illuminate\Database\SqlServerConnection

You can also add custom resolvers by one of the following:

  • Mpyw\LaravelUniqueViolationDetector\Facades\Unique::resolverFor()
  • Mpyw\LaravelUniqueViolationDetector\DetectorDiscoverer::resolverFor()

Installing

composer require mpyw/laravel-unique-violation-detector

Usage

You can detect unique violations in various ways.

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);

About

Detect primary/unique key or constraint violation errors from PDOException.

Resources

License

Stars

Watchers

Forks

Languages