Maison > développement back-end > tutoriel php > Comment implémenter la validation unique multi-colonnes à l'aide de Rule :: unique dans Laravel ?

Comment implémenter la validation unique multi-colonnes à l'aide de Rule :: unique dans Laravel ?

Susan Sarandon
Libérer: 2024-10-29 05:21:02
original
1060 Les gens l'ont consulté

How to Implement Multi-Column Unique Validation Using Rule::unique in Laravel?

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>
Copier après la connexion

Explication :

  • Rule::unique('servers') : Spécifie que la règle de validation doit être appliquée à la table « serveurs ».
  • where : Utilisé pour filtrer la vérification unique en fonction de critères supplémentaires. Dans ce cas, nous filtrons à la fois par les colonnes "ip" et "hostname".
  • $ip** et **$hostname : ces variables sont supposées contenir les valeurs que vous souhaitez valider.
  • $messages : Un tableau facultatif qui vous permet de personnaliser le message d'erreur affiché lorsque la validation échoue.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal