Laravelで複数の列の一意性を検証する方法は?

DDD
リリース: 2024-11-02 14:01:02
オリジナル
203 人が閲覧しました

How to Validate the Uniqueness of Multiple Columns in Laravel?

Laravel での複数の列の一意性の検証

Laravel では、一意の検証ルールにより、指定されたデータベース列の値の一意性が保証されます。ただし、複数の列を扱う場合、それらの組み合わせの一意性を検証するのは簡単ではありません。

質問を考慮すると、servers テーブルには ip と hostname という 2 つの列があります。特定の IP 値を持つ新しいレコードが既存のホスト名値と並んでテーブルにまだ存在していないことを検証するには、Rule::unique を利用できます。

次のコード スニペットは、目的の検証を実現する方法を示しています。 :

<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>
ログイン後にコピー

この検証ルールは、同じ IP とホスト名の組み合わせを持つレコードがサーバー テーブルにすでに存在するかどうかを確認します。その場合、$messages で指定されたカスタム メッセージに従ってエラー メッセージが返されます。 where クロージャを定義することで、一意性の正確な条件を指定し、ip 値と hostname 値の両方が確実に考慮されるようにすることができます。

以上がLaravelで複数の列の一意性を検証する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!