Utilisation de Rule::unique pour la validation unique multi-colonnes dans Laravel
Dans votre application Laravel, vous avez une table nommée "serveurs" avec deux colonnes : "ip" et "hostname". Vous souhaitez vous assurer qu'une combinaison de ces deux colonnes est unique, évitant ainsi les entrées en double. Bien que vous ayez déjà implémenté une règle de validation pour la colonne « ip », vous souhaitez étendre cette logique pour inclure également la colonne « nom d'hôte ».
Pour réaliser cette validation unique sur plusieurs colonnes, vous pouvez tirer parti de Laravel. Méthode Rule::unique. Voici une version modifiée de votre règle de validation :
<code class="php">$messages = [ 'data.ip.unique' => 'Given ip and hostname are not unique', ]; Validator::make($data, [ 'data.ip' => [ 'required', Rule::unique('servers') ->where(function ($query) use ($ip, $hostname) { return $query->where('ip', $ip) ->where('hostname', $hostname); }), ], ], $messages);</code>
Explication :
Cette règle de validation mise à jour garantira que la combinaison des valeurs "ip" et "hostname" est unique dans la table "servers", empêchant ainsi les entrées en double avec la même IP et le même nom d'hôte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!