B3S
menu close

雑記

【Laravel】フォームリクエストを使ってバリデーションしてみた


Uga

公開日:2024/02/13


社外向けの多言語対応システムを作成するにあたり、Laravelのフォームリクエストを使用したので勉強になったことをまとめます。

※コードの内容はLaravel公式に掲載されているものを代用しています。

 

フォームリクエストとは

フォームリクエストは、独自のバリデーションおよび認可ロジックをカプセル化するカスタムリクエストクラスです。

フォームリクエストを使用することで、Controller内でのバリデーションロジックを簡素化することができます。

 

フォームリクエストの使用方法

以下のコマンドで作成

 

作成したらControllerメソッドで指定します。

 

これによりControllerメソッドが呼び出される前にバリデーションを行うため

Controllerに記述していたバリデーションロジックを簡素化できます。

 

使用したメソッド

rules

バリデーションルールを記述します。

returnする値は配列の形にする必要があります。

 

また、バリデーションエラーの際に表示されるメッセージはmessagesメソッドに記述します。

今回は多言語対応のため、resources\lang\(言語)\validation.phpにて記述しました。

 

共通のエラーメッセージはデフォルトのものを使用し

独自のエラーメッセージについてはカスタムメッセージを使用しました。

custom配列に下記のように記述します。

 

prepareForValidation

バリデーションルールの適用前に入力値の整形を行いたい際に使用します。

今回は、ルール適用前に入力値の一部データに対して配列のインデックスを変更する必要があったため使用しました。

 

終わり

フォームリクエストを使用することで、バリデーションの可読性が向上し、Controllerもキレイになりました。

他にも使用していないメソッドがあるので、タイミングがあれば積極的に使用したいと思います。