Laravelのバリデーションで、全角半角問題を対応(データ整形)

前置き

ウェブアプリで度々問題となる(?)入力フォーム値の全角半角について、Laravelでの対応方法です。
独自のリクエストクラスで、バリデーションの前にデータを整形する方法で対応しています。

独自リクエストクラスの使い方などは、省略します。

バリデーション前のデータ整形

prepareForValidation() にデータを整形する処理を書きます。
$this->merge($input) で、整形したデータを結合してあげてください。

ちょっとポイント

この方法はバリデーション前に、データを整形します。
バリデーションエラー時の入力フォームには反映されませんので、データ整形したのに変わってないよ~と思いがちです。

バリデーションエラーで、リダイレクトされたフォームにデータを整形反映させる方法もあります。