Laravel での複数列の一意の検証に Rule::unique を使用する
Laravel アプリケーションには、「servers」という名前のテーブルがあります。 「ip」と「hostname」の 2 つの列があります。これら 2 つの列の組み合わせが一意であることを確認して、エントリの重複を防ぎたいと考えています。 「ip」列の検証ルールはすでに実装していますが、このロジックを拡張して「hostname」列も含めることを目指しています。
この複数列の一意の検証を実現するには、Laravel のルール::ユニーク メソッド。検証ルールの修正バージョンは次のとおりです:
<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」と「hostname」の値の組み合わせが「servers」テーブル内で一意であることを保証し、同じ IP とホスト名の重複エントリを効果的に防止します。
以上がLaravelでRule::uniqueを使用して複数列の一意の検証を実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。