用意されているバリデーションルール条件付きでルールを追加するカスタムエラーメッセージカスタムバリデーションルール基本の使用法Laravelにはシンプルで便利なValidationクラスが用意されており、データーの正当性確認やエラーメッセージの取得ができます。&#39;required|min:5&#39;));makeメソッドに渡す最初の引数はバリデーションを行うデーターです。2つ目の引数はデーターに適用するバリデーションルールです。ルールの指定に配列を使用する複数のルール指定はパイプ(縦線)で区切るか、配列で分割し指定します。));Validatorインスタンスが生成されたら、fails(もしくはpasses)メソッドを使用し、バリデーションを実行します。渡されたデーターはバリデーションを通過しなかった}バリデーションが失敗すると、バリデーターよりエラーメッセージが取得できます。$validator-&gt;messages();メッセージではなく、バリデーションで失敗したことを示す配列へアクセスすることも可能です。使用するにはfailedメソッドを使ってくだい。$validator-&gt;failed();ファイルのバリデーションValidatorクラスはファイルに対し、size、mimesなどのようないくつかのバリデーションルールを提供しています。ファイルをバリデーションする場合は、他のデータと一緒にバリデーターへ渡してください。エラーメッセージの操作Validatorのインスタンスに対し、messagesメソッドを呼びだせば、エラーメッセージを操作するのに便利な様々なメソッドを持つMessageBagインスタンスが取得できます。&#39;&lt;p&gt;:message&lt;/p&gt;&#39;);デフォルトでは、エラーメッセージはBootstrapコンパチブルな形式が使われます。一度バリデーションを実行したら、エラーメッセージをビューで簡単に表示する方法が欲しくなるでしょう。Laravelでは便利に行えます。以下のルートを参考にしてください。}});バリデーションに失敗した場合、ValidatorインスタンスをリダイレクトのwithErrorsメソッドに渡していることに注目してください。このメソッドはセッションにエラーメッセージをフラッシュデーターとして保存し、次のリクエストで使用できるようにします。GETルートの中で明示的にエラーメッセージをビューに結合していないことにも注目してください。これは常にLaravelがセッションにerrorsが存在しないかチェックしており、存在時は自動的にビューに結びつけてくれるからです。$errors変数はいつでも全リクエスト中の、全ビューで使用でき、あなたは$errorsはいつでも定義済みだと確信し、安心して使用できるのです。$errors変数はMessageBagインスタンスです。リダイレクトした後に、ビューと自動的に結び付けられた$errors変数を便利に利用してください。?&gt;名前付きエラーBag一つのページに複数のフォームがある場合、エラーのMessageBagに名前を付けたいこともあるでしょう。これにより、特定のフォームに対するエラーメッセージを取得できるようになります。withErrorsへの第2引数として、名前を渡すだけです。&#39;login&#39;);これで、$errors変数により、名前付きMessageBagインスタンスへアクセスできます。?&gt;用意されているバリデーションルール以下が使用可能なバリデーションルールとその機能のリストです。サイズ文字列タイムゾーン相違(データベース)URLacceptedそのフィールドがyes、on、もしくは1であることをバリデートします。これは「サービス利用規約」同意のバリデーションに便利です。active_urlフィルドがPHPの機能であるcheckdnsrrを通して、有効なURLであるかをバリデートします。after:日付フィールドの値が与えられた日付以降であるかバリデーションします。日付はPHPのstrtotime関数で処理されます。alphaフィールドが全部英文字であることをバリデートします。alpha_dashフィールドが全部英文字とダッシュ(-)、下線(_)であることをバリデートします。alpha_numフィールドが全部英数字であることをバリデートします。arrayフィールドが配列タイプであることをバリデートします。before:日付フィールドが与えられた日付より前であることをバリデートします。日付はPHPのstrtotime関数で処理されます。between:最小値,最大値フィールドが指定された最小値と最大値の間のサイズであることをバリデートします。sizeルールと同様の判定方法で、文字列、数値、ファイルは評価されます。booleanフィールドが論理値として有効であることをバリデートします。受け入れられる入力は、true、false、1、0、"1"、"0"です。confirmedフィールドがそのフィールド名+_confirmationフィールドと同じ値であることをバリデートします。バリデーションするフィールドがpasswordであれば、password_confirmationフィールドが入力に存在していなければなりません。dateパリデーションされる値はPHP関数のstrtotimeを使用し確認されます。date_format:フォーマットバリデーションされる値はフォーマット定義と一致するか、PHP関数のdate_parse_from_formatを使用し確認されます。different:フィールドフィールドが指定されたフィールドと異なった値を指定されていることをバリデートします。digits:値フィールドが数値で、値の桁数であることをバリデートします。digits_between:最小値,最大値フィールドが整数で、桁数が最小値から最大値の間であることをバリデートします。emailフィールドがメールアドレスとして正しいことをバリデートします。exists:テーブル,カラムフィールドの値が、指定されたデータベーステーブルに存在することをバリデートします。&#39;exists:states,abbreviation&#39;さらにクエリーへWHERE節として追加される条件を追加することも可能です。&#39;exists:staff,email,account_id,1&#39;NULLを"where"節の値として渡せば、データベースの値がNULLであることを追加でチェックできます。&#39;exists:staff,email,deleted_at,NULL&#39;imageフィールドで指定されたファイルが画像(jpg、png、bmp、gif)であることをバリデートします。in:foo,bar...フィールドが指定されたリストの中の値に含まれていることをバリデートします。integerフィールドが整数値であることをバリデートします。ipフィールドがIPアドレスの形式として正しいことをバリデートします。max:値フィールドが最大値として指定された値以下であることをバリデートします。sizeルールと同様の判定方法で、文字列、数値、ファイルは評価されます。mimes:foo,bar...フィールドで指定されたファイルが拡張子のリストの中のMIMEタイプのどれかと一致することをバリデートします。&#39;mimes:jpeg,bmp,png&#39;min:値フィールドが最小値として指定された値以上であることをバリデートします。sizeルールと同様の判定方法で、文字列、数値、ファイルは評価されます。not_in:foo,bar...フィールドが指定されたリストの中の値に含まれていないことをバリデートします。numericフィールドは数値であることをバリデートします。regex:正規表現フィールドが指定された正規表現にマッチすることをバリデートします。注目:regexパターンを使用する場合は、ルールをパイプ(縦棒)で区切るのではなく、配列で指定することが必要になります。正規表現に縦棒を含んでいる場合は該当します。requiredフィールドに入力データーが存在することをバリデートします。required_if:フィールド,値,...引数で指定された_フィールド_が、同じく引数で指定された値のどれかと等しいことをバリデートします。required_with:foo,bar...引数で指定されたフィールドのうち、どれかが存在している場合のみ、フィールドが入力されていることをバリデートします。required_with_all:foo,bar...引数で指定されたフィールドのうち、全てが存在している場合のみ、フィールドが入力されていることをバリデートします。required_without:foo,bar...フィールドは、指定された他のフィールドのうちどれかが存在しない場合のみ、この項目が入力されていることをバリデートします。required_without_all:foo,bar...フィールドは、指定された他のフィールド全部が存在しない場合のみ、この項目が入力されていることをバリデートします。same:フィールドフィールドが、指定されたフィールドと同じ値であることをバリデートします。size:値フィールドは指定された値と同じサイズであることをバリデートします。文字列の場合、値は文字長です。数値項目の場合、値は整数値です。ファイルの場合、値はキロバイトのサイズです。string:値フィールドが、文字列タイプであることをバリデートします。PHP関数の値に基づき、フィールドがタイムゾーンとして識別されることをバリデートします。unique:テーブル,カラム,除外ID,IDカラムフィールドは指定されたデータベースで一意であることをバリデートします。columnオプションが指定されない場合、フィールド名が使用されます。&#39;unique:users,email_address,10&#39;追加のWHERE節を付け加えるさらにクエリーへWHERE節として追加される条件を追加することも可能です。&#39;unique:users,email_address,NULL,id,account_id,1&#39;上記のルールでは、同一かチェックする対象は、account_idが1の行のみになります。urlフィールドがURLの形式であることをバリデートします。注目:この機能は、PHPのfilter_varメソッドを使用しています。条件付きでルールを追加するある状況では、そのフィールドが入力配列の中に存在する場合のみ、バリデーションを実行したいことがあると思います。これを簡単に行うには、sometimesルールを追加してください。&#39;sometimes|required|email&#39;,));上の例では、emailフィールドが、$data配列の中に存在している場合のみ、バリデーションが実行されます。複雑な条件のバリデーション時々(sometime)、他のフィールド値が100以上の場合のみ指定したフィールド入力を必須にしたい場合もあるでしょう。あるフィールドを指定する場合だけ、2つのフィールドが必要な場合もあるでしょう。この様なバリデーションルールを追加する場合でも、手間はかかりません。最初に固定ルールによりValidatorインスタンスを作成するのは変わりません。&#39;required|numeric&#39;,));ゲームコレクターのためのWebアプリケーションだと仮定しましょう。ゲームコレクターがアプリケーションに登録する時に、100ゲーム以上所有しているのであれば、なぜそんなに多く持っているのか理由を説明してもらいます。中古ゲーム店を運営しているのかも知れませんし、ただ集めているのかも知れません。この条件付きの要求を追加するために、Validatorインスタンスへ、sometimesメソッドを使用してください。100;});sometimesメソッドの最初の引数は条件付きでバリデーションを行うフィールドの名前です。2つ目の引数は追加したいルールです。3つ目の引数にクロージャーが渡され、trueをリターンしたら、そのルールは追加されます。このメソッドにより、複雑な条件付きのバリデーションが簡単に作成できます。一度に多くのフィールドに、条件付きバリデーションを追加することもできます。100;});注目:クロージャーに渡される$inputパラメーターは、Illuminate\Support\Fluentのインスタンスで、フィールドと入力値にアクセスするためのオブジェクトです。カスタムエラーメッセージ必要であれば、デフォルトのエラーメッセージの代わりに、カスタムメッセージを使用できます。指定する方法はいくつかあります。attributeプレースホルダーはバリデーション中のフィールド名に置き換わります。バリデーションメッセージごとに別のプレースホルダーも使用できます。:values&#39;,);指定されたフィールドにカスタムメッセージを指定する特定のフィールドだけにカスタムメッセージを指定したい場合もあるでしょう。address!&#39;,);言語ファイルにカスタムメッセージを指定する場合により、Validatorに直接カスタムメッセージを渡すよりは、言語ファイルに指定したい場合もあるでしょう。そのためには、app/lang/xx/validation.php言語ファイルのcustom配列にメッセージを追加してください。),),カスタムバリデーションルールカスタムバリデーションルールを登録するLaravelは多彩な役に立つバリデーションを提供していますが、自分だけの特別なバリデーションを使用したい場合もあるでしょう。カスタムバリデーションルールを登録する一つの方法は、validator::extendメソッドを使用する方法です。&#39;foo&#39;;});カスタムバリデーターの無名関数は3つの引数を取ります。$attributeはバリデーションをしているフィールド、$valueはその値、$parametersはルールに渡された引数です。クロージャーの代わりにextendメソッドへクラスとメソッドを渡すこともできます。&#39;FooValidator@validate&#39;);カスタムルールにエラーメッセージも定義する必要があります。同時にエラーメッセージを定義することも、また言語ファイルにエントリーを追加することも可能です。Validatorクラスを拡張するValidatorに無名関数のコールバックを追加するより、Validatorクラスそのものを拡張したい場合もあるでしょう。あれば、Illuminate\Validation\Validatorを拡張して自分のValidatorを書くこともできます。そのクラスにvalidateのプレフィックスをつけたバリデーションメソッドを追加してください。}}カスタムバリデーターリゾルバーを登録する次にカスタムバリデーター拡張を登録する必要があります。$messages);});カスタムバリデーションルールを作成する場合、時々エラーメッセージ中で置き換えるカスタムプレースホルダーを定義する必要が起きます。今まで説明したカスタムバリデーションの作成を行い、それからバリデーターにreplaceXXX関数を追加してください。$message);}Validatorクラスを拡張せずに、カスタムメッセージへ置き換えたい場合は、Validator::replacerメソッドを使用できます。kawase(Translation).このバージョンのサポートは終了しています。