プロフィールお問い合わせ札幌でソフトウェア開発、アフィリエイトセミナーを行っています。2019年4月27日プロミディア合同会社の斉藤です。Laravelを使って、バリデーションを実装する方法を解説します。バリデーションは、ほとんどのWebアプリケーションで使われる機能ですので、この記事を読んで理解を深めてください。記事内ではバリデーションの部分だけ解説するので、全ソースが欲しい方はGitHubに上げたソースコードをご覧ください。ダウンロードLaravelでバリデーションを実装するための概要Laravelではフォームリクエストという機能を使ってバリデーションを実装します。厳密にはフォームリクエストを使わずに、コントローラ内に記述することもできるのですが、それだとコントローラ内に処理とバリデーションが混在してしまい、可読性が悪くなります。基本的にバリデーションはフォームリクエストを使うものであると覚えておきましょう。バリデーションの代表的なチェックパターンはフレームワーク側で用意されているので、普通のチェックであれば簡単に実装できます。今回使用するバリデーションのチェックパターン今回のサンプルプログラムでは、よくありそうなチェックを入れてみました。英語以外の文字が含まれている用意されているバリデーションの全パターンについては、下記の公式サイトを参照してください。使用可能なバリデーションルールフォームリクエストでバリデーションが実行されるタイミングコントローラの引数に通常のリクエストではなく、作成したバリデーションのリクエストを指定するとコントローラに入ってくる前にバリデーションが実行されるようになります。詳しくは後ほど出てくるソースコードをご覧ください。今回のサンプルプログラムでは、単純に1画面だけの入力フォームで解説していきます。各項目のバリデーション内容がわかるように、ラベルに書いておきました。※Formファサード、Bootstrapを使用していますが、その部分の解説は省略しています。ルーティングルートは下記の2つのみです。'ValidateTestController@create');バリデーションする側のみメソッドの引数の型を変えるので、メソッドはgetとpostで別にする必要があります。(最初、一緒のメソッドにしてハマりました)フォームリクエストの作成プロジェクトフォルダ直下でターミナルから下記コマンドを実行して、バリデーション用のクラスを作成します。ValidateTestRequest※リクエストの名前は任意でつけてください。今回は「ValidateTestRequest」という名称にしています。初期状態からauthorizerulesmessagesを今回の仕様に合うように書き換えます。'メールアドレスの形式ではありません。'1〜100の範囲で入力してください。'5文字以内で入力してください。'いずれかを撰択してください。'英語以外の文字が含まれています。'メールアドレスの形式ではありません。'1〜100の範囲で入力してください。'5文字以内で入力してください。'いずれかを撰択してください。'英語以外の文字が含まれています。',];}}※text1などは各コントロールのid値です。エラーメッセージを日本語で表示させるエラーメッセージを日本語で表示させるには、FormRequestのmessagesメソッドをオーバーライドします。書き方については上記のrulesとmessagesの対応を見ていただけたらわかるかなと思います。コントローラの実装createメソッドの引数の型をValidateTestRequestに変更することで、POSTのときのみバリデーションが行われるようになります。view('create');}}ビューの実装ビューでは、エラーがあったときだけ、エラーメッセージを表示する実装とするのがポイントです。!!}$errors->hasでその項目にエラーがあるかチェックし、あるのであれば、$errors->firstで最初の1件を取り出しています。今回は使いませんが、全部のエラーを取り出したければ$errors->allを使用します。}}</p>@endifダウンロード今回解説したサンプルプログラムをGitHubにアップロードしました。貞義プロミディア合同会社代表。会社員としてソフトウェア開発を約13年経験後、PE-BANK所属のフリーランスエンジニアとして独立。その2年半後に法人成りし、合同会社を設立。現在は企業に常駐してソフトウェア開発をしつつ、収益を目的としてWebサイト作成、セミナーを開催している。2020/02/01Laravelでランキング集計を定期的に実行する方法2019/09/28合同会社の決算。425ビューVBAでスクレイピング。決算の話し2019/09/28合同会社の決算。税理士の話し2019/9/16一人だけの合同会社が税理士に支払う費用は?私の場合は決算込みで月額15,000円です。一人だけの合同会社が税理士に支払う費用は?私の場合は決算込みで月額15,000円です。札幌でソフトウェア開発、アフィリエイトセミナーを行っています。