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
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.
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 ...