Comment valider le caractère unique de plusieurs colonnes dans Laravel ?

DDD
Libérer: 2024-11-02 14:01:02
original
267 Les gens l'ont consulté

How to Validate the Uniqueness of Multiple Columns in Laravel?

Validation de plusieurs colonnes pour l'unicité dans Laravel

Dans Laravel, la règle de validation unique garantit l'unicité d'une valeur dans une colonne de base de données spécifiée. Cependant, lorsqu'il s'agit de plusieurs colonnes, il n'est pas simple de valider leur unicité combinée.

Considérant la question, nous avons deux colonnes, ip et hostname, dans la table des serveurs. Pour valider qu'un nouvel enregistrement avec une valeur IP spécifique n'existe pas déjà dans la table à côté d'une valeur de nom d'hôte existante, nous pouvons utiliser Rule::unique.

L'extrait de code suivant montre comment obtenir la validation souhaitée :

<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

Cette règle de validation vérifie si un enregistrement avec la même combinaison IP et nom d'hôte existe déjà dans la table des serveurs. Si tel est le cas, il renvoie un message d'erreur selon le message personnalisé spécifié dans $messages. En définissant la fermeture Where, nous pouvons spécifier les conditions exactes d'unicité, garantissant que les valeurs IP et de nom d'hôte sont prises en compte.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal