はじめに
Laravel で 全角カタカナ・半角英数記号 に変換しつつバリデーションする方法について整理した。
要件としては下記。
- バリデーションの前にデータを変換
- 「全角かな・半角カナ」→「全角カナ」
- 「全角英数記号」→「半角英数記号」
- 変換したデータに対してバリデーション
- バリデーション OK ならその後の処理も変換後のデータを利用
- レコードの 作成/更新 とか検索とか
- バリデーション OK ならその後の処理も変換後のデータを利用
TL;DR
prepareForValidation
でバリデーション前の処理mb_convert_kana
で全角・半角の変換- 変換できない文字もあるので注意
regex
ルールで正規表現を使ってバリデーション- バリデーション通れば後はいつも通り