web-dev-qa-db-fra.com

Laravel validation de règle unique pour id

J'ai une table d'emplacements qui a une clé étrangère client_id qui relie à ma table client. Je souhaite ajouter une validation de formulaire de sorte que lorsqu'un nouvel emplacement est créé, il soit unique, mais uniquement pour un client_id donné. Ainsi, le client un ne peut pas avoir deux emplacements appelés Amérique, mais le client un et deux peuvent tous les deux avoir l’Amérique.

Comment faites-vous cela avec les règles de validation de laravel

5
user3074140

Vérifiez la validation laravel documentation. Vous pouvez spécifier la table, la colonne et l'id à ignorer.

'email' => 'unique:users,email_address,'.$user->id

Vous pouvez également ajouter des clauses where supplémentaires:

'email' => 'unique:users,email_address,NULL,id,account_id,1'

Dans la règle ci-dessus, seules les lignes avec un account_id égal à 1 seraient incluses dans le contrôle unique.

5
Mehrdad Dastgir

Vous pouvez utiliser la validation unique intégrée de laravel comme,

'client_id' => 'unique:Client table'

et au moment de l'édition, vous pouvez passer une exception pour la ligne en cours, comme

'client_id' => 'unique:Client table,client_id,'.$id

J'espère que ça aide, merci ...

1
Rits