基本的な検証例
make 関数に渡される最初のパラメーターは検証されるデータであり、2 番目のパラメーターはデータに適用する必要がある検証ルールです。
複数の検証ルールは、「|」文字で区切るか、配列の個別の要素として区切ることができます。
配列を介して検証ルールを指定します
Validator インスタンスが作成されたら、失敗 (または合格) 関数を使用してこの検証を実行できます。
書類確認
Validator クラスは、サイズ、MIME など、ファイルを検証するためのいくつかの検証ルールを提供します。ファイルを検証するときは、他の検証と同様に、ファイルをバリデーターに渡すことができます。
エラーメッセージが表示されます
Validator インスタンスでメッセージ関数を呼び出すと、エラー メッセージを処理するための便利な関数が多数ある MessageBag インスタンスを取得します。
ドメインの最初のエラーメッセージを取得する
ドメインのすべてのエラーメッセージを取得する
すべてのドメインのすべてのエラーメッセージを取得する
ドメインにメッセージが存在するかどうかを確認する
:message
'); すべてのエラーメッセージを特定の形式で取得します
エラーメッセージとビュー
検証を実行したら、エラー メッセージをビューにフィードバックする簡単な方法が必要になります。これは Lavavel で簡単に処理できます。例として次のルートを考えてみましょう:
ただし、GET ルート内のルートにエラー メッセージを明示的にバインドする必要はないことに注意してください。これは、Laravel が常にセッションのエラーをチェックし、エラーが利用可能な場合は自動的にビューにバインドするためです。したがって、すべてのリクエストについて、$errors 変数は常にすべてのビューで使用できるため、$errors が常に定義されており、安全に使用できると便利に想定できます。 $errors 変数は、MessageBag クラスのインスタンスになります。
したがって、ジャンプ後、ビューで自動バインドされた $errors 変数を使用できます。
以下は、利用可能なすべての検証ルールとその機能のリストです。
受け付けました
このルールの値が yes、on、または 1 である必要があることを検証します。これは、利用規約への同意を確認する場合に役立ちます。
active_url
PHP 関数 checkdnsrr に従って、このルールの値が有効な URL である必要があることを確認します。
後:日付
このルールの値が、PHP 関数 strtotime を介して渡される、指定された日付以降である必要があることを検証します。
アルファ
このルールを検証する値は、完全に英字で構成されている必要があります。
アルファ_ダッシュ
このルールの値が完全に文字、数字、ダッシュ、または下線文字で構成されている必要があることを検証します。
alpha_num
このルールを検証する値は、完全に文字と数字で構成されている必要があります。
前:日付
このルールの値が指定された日付より前である必要があることを検証します。この日付は、PHP 関数 strtotime を通じて渡されます。
間:最小、最大
このルールの値が指定された最小値と最大値の間にある必要があることを検証します。文字列、数値、ファイルはサイズ ルールを使用して比較されます。
確認しました
この検証ルールの値は、foo_confirmation の値と同じである必要があります。たとえば、このルールで検証する必要があるフィールドがパスワードの場合、入力に同じパスワード確認フィールドが存在する必要があります。
日付
PHP 関数 strtotime に従って、このルールの値が有効な日付である必要があることを検証します。
日付形式:形式
PHP 関数 date_parse_from_format に従って、このルールの値が指定された形式に準拠する必要があることを検証します。
異なる:フィールド
このルールの値が指定されたフィールドの値と異なる必要があることを検証します。
メール
このルールの値が有効な電子メール アドレスである必要があることを検証します。
存在:テーブル、カラム
このルールの値が指定されたデータベース テーブルに存在する必要があることを検証します。
Exists ルールの基本的な使い方
画像
このルールを検証する値は画像 (jpeg、png、bmp、または gif) である必要があります。
in:foo,bar,...
このルールの値が指定されたリストに存在する必要があることを確認してください。
整数
このルールの値が整数である必要があることを検証します。
このルールの値が有効な IP アドレスである必要があることを確認してください。
最大:値
このルールの値が最大値未満でなければならないことを検証します。文字列、数値、ファイルはサイズ ルールを使用して比較されます。
マイム:フー、バー、...
このルールを検証するファイルの MIME タイプは、指定されたリストに含まれている必要があります。
MIMEルールの基本的な使い方
分:値
このルールを検証する値は、最小値より大きくなければなりません。文字列、数値、ファイルはサイズ ルールを使用して比較されます。
not_in:foo、bar、...
このルールの値が指定されたリストに存在してはいけないことを検証します。
数値
このルールを検証する値は数値である必要があります。
正規表現:パターン
このルールの値が指定された正規表現と一致する必要があることを検証します。
注: 正規表現モードを使用する場合、特に正規表現にパイプ文字が含まれている場合は、パイプ区切り文字の代わりに配列を使用してルールを指定する必要があります。
必須
このルールの値が入力データに存在する必要があることを検証します。
required_if:フィールド、値
指定されたフィールドが特定の値である場合、このルールの値が存在する必要があります。
required_with:foo、bar、...
指定されたドメインが存在する場合にのみ、このルールの値が存在する必要があることを検証します。
必須_なし:foo、bar、...
指定されたドメインが存在しない場合にのみ、このルールの値が存在する必要があることを確認してください。
同じ:フィールド
このルールの値が指定されたドメインの値と同じである必要があることを検証します。
サイズ:値
このルールの値が指定された値と同じサイズでなければならないことを検証します。文字列の場合、値は文字数を表します。数値の場合、値は整数値を表します。ファイルの場合、値はファイルのサイズを KB 単位で表します。
一意:テーブル、列、例外、idColumn
このルールの値が指定されたデータベース テーブル内で一意である必要があることを確認してください。列が指定されていない場合は、フィールドの名前が使用されます。
ユニークルールの基本的な使い方
URL
このルールの値が有効な URL である必要があることを確認してください。
カスタマイズされたエラーメッセージ
必要に応じて、デフォルトのエラーメッセージの代わりにカスタマイズしたエラーメッセージを使用できます。エラー メッセージをカスタマイズするにはいくつかの方法があります。
カスタムメッセージをバリデーターに渡す
注: :attribute プレースホルダーは、検証対象のドメインの実際の名前に置き換えられます。エラー メッセージでは他のプレースホルダーを使用することもできます。
その他の検証プレースホルダー
指定したドメインのカスタマイズされたエラー メッセージを指定する
言語ファイルでエラーメッセージを指定
カスタマイズされた検証ルール
Laravel にはさまざまな便利な検証ルールが用意されていますが、独自の検証ルールを追加することもできます。 1 つの方法は、Validator::extend 関数を使用してカスタム検証ルールを登録することです:
カスタマイズされた検証ルールを登録する
注: extend 関数に渡されるルールの名前は、「スネークケース」命名規則に準拠する必要があります。
カスタマイズされたバリデーターは、検証される属性の名前、検証される属性の値、およびこのルールに渡されるパラメーターの 3 つのパラメーターを受け入れます。
クロージャを使用する代わりにクラス関数をextend関数に渡すこともできます:
クロージャコールバックでバリデータを拡張する代わりに、バリデータクラス自体を拡張することもできます。これを実現するには、IlluminateValidationValidator を継承するバリデーター クラスを追加します。クラスに validate で始まる検証関数を追加できます:
拡張バリデータークラス
以下では、カスタムバリデーター拡張機能を登録する必要があります:
カスタムバリデータ拡張機能を登録する必要があります
カスタム検証ルールを作成するとき、エラー メッセージのカスタム プレースホルダーを定義する必要がある場合があります。これを実現するには、上記のようなカスタム バリデーターを作成し、そのバリデーターに replaceXXX 関数を追加します。
例: