PHPackages                             mattvb91/uniquewith-validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. mattvb91/uniquewith-validator

AbandonedArchivedLibrary[Validation &amp; Sanitization](/categories/validation)

mattvb91/uniquewith-validator
=============================

Custom Laravel Validator for combined unique indexes

3.4.3(3y ago)02.5kMITPHPPHP ^7.1.3|^8.0

Since Jan 2Pushed 3y agoCompare

[ Source](https://github.com/mattvb91/uniquewith-validator)[ Packagist](https://packagist.org/packages/mattvb91/uniquewith-validator)[ Docs](https://github.com/felixkiss/uniquewith-validator)[ RSS](/packages/mattvb91-uniquewith-validator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (30)Used By (0)

THIS IS NOT MAINTAINED. THIS IS JUST TO GET THE LARAVEL 9 UPDATE WORKING. SEE  DUE TO THE MAINTAINER ABANDONING THE PACKAGE.
==============================================================================================================================================================================================================================

[](#this-is-not-maintained-this-is-just-to-get-the-laravel-9-update-working-see-httpsgithubcommattvb91uniquewith-validatorcommitba133e734ca8e71f4218f0e1db88a1bbc5a583e7-due-to-the-maintainer-abandoning-the-package)

unique\_with Validator Rule For Laravel
=======================================

[](#unique_with-validator-rule-for-laravel)

[![Build Status](https://camo.githubusercontent.com/8cb7168ddbc04d225e769ff2bd9ea1d0c091afb72ca11335fb927d36be12a803/68747470733a2f2f7472617669732d63692e6f72672f66656c69786b6973732f756e69717565776974682d76616c696461746f722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/felixkiss/uniquewith-validator)

This package contains a variant of the `validateUnique` rule for Laravel, that allows for validation of multi-column UNIQUE indexes.

Documentation for older versions
--------------------------------

[](#documentation-for-older-versions)

- [Laravel 4](https://github.com/felixkiss/uniquewith-validator/blob/2.0.8/README.md#laravel-4)

Installation
------------

[](#installation)

Install the package through [Composer](http://getcomposer.org). On the command line:

```
composer require mattvb91/uniquewith-validator

```

Configuration
-------------

[](#configuration)

Add the following to your `providers` array in `config/app.php`:

```
'providers' => [
    // ...

    Felixkiss\UniqueWithValidator\ServiceProvider::class,
],
```

Usage
-----

[](#usage)

Use it like any `Validator` rule:

```
$rules = [
    '' => 'unique_with:,[,,...,]',
];
```

See the [Validation documentation](http://laravel.com/docs/validation) of Laravel.

### Specify different column names in the database

[](#specify-different-column-names-in-the-database)

If your input field names are different from the corresponding database columns, you can specify the column names explicitly.

e.g. your input contains a field 'last\_name', but the column in your database is called 'sur\_name':

```
$rules = [
    'first_name' => 'unique_with:users, middle_name, last_name = sur_name',
];
```

### Ignore existing row (useful when updating)

[](#ignore-existing-row-useful-when-updating)

You can also specify a row id to ignore (useful to solve unique constraint when updating)

This will ignore row with id 2

```
$rules = [
    'first_name' => 'required|unique_with:users,last_name,2',
    'last_name' => 'required',
];
```

To specify a custom column name for the id, pass it like

```
$rules = [
    'first_name' => 'required|unique_with:users,last_name,2 = custom_id_column',
    'last_name' => 'required',
];
```

If your id is not numeric, you can tell the validator

```
$rules = [
    'first_name' => 'required|unique_with:users,last_name,ignore:abc123',
    'last_name' => 'required',
];
```

### Add additional clauses (e.g. when using soft deletes)

[](#add-additional-clauses-eg-when-using-soft-deletes)

You can also set additional clauses. For example, if your model uses soft deleting then you can use the following code to select all existing rows but marked as deleted

```
$rules = [
    'first_name' => 'required|unique_with:users,last_name,deleted_at,2 = custom_id_column',
    'last_name' => 'required',
];
```

*Soft delete caveat:*

In Laravel 5 (tested on 5.5), if the validation is performed in form request class, field deleted\_at is skipped, because it's not send in request. To solve this problem, add 'deleted\_at' =&gt; null to Your validation parameters in request class., e.g.:

```
protected function validationData()
{
    return array_merge($this->request->all(), [
        'deleted_at' => null
    ]);
}
```

### Specify specific database connection to use

[](#specify-specific-database-connection-to-use)

If we have a connection named `some-database`, we can enforce this connection (rather than the default) like this:

```
$rules = [
    'first_name' => 'unique_with:some-database.users, middle_name, last_name',
];
```

Example
-------

[](#example)

Pretend you have a `users` table in your database plus `User` model like this:

```
