FormRequestでValue値を翻訳する
こんにちは。
ニシザワです。
本日は、LaravelのFormRequestでvalue値を翻訳する方法について書きたいと思います。
タイプが2の場合はメッセージを入力してください。
2ってなんだよ!って感じ。
これをLaravelで翻訳対応するなら、resources/lang/言語/validation.phpのcustomに書いてあげれば対応できます。
ただこの翻訳ファイルだと、typeが1回しか使えないです。
であれば、個別に対応したいですよね。
ということで本題です
FormRequestでこのvalue値を翻訳する方法をここから書きます。
このプロパティに翻訳する情報を入れてあげるとvalue値が翻訳されます。
$customValuesプロパティに値をセットするのが、setValueNamesメソッドになります。
FormRequestは標準ではValidatorクラスをgetValidatorInstanceメソッドで解決しているため、そちらを継承して
ValidatorクラスにsetValueNamesを使って翻訳を入れている形です。
こうすることで、バリデーションのエラーメッセージが
タイプが新着の場合はメッセージを入力してください。
となります。
本日は以上です。
ニシザワです。
本日は、LaravelのFormRequestでvalue値を翻訳する方法について書きたいと思います。
バリデーションルールでこんなこと無いでしょうか
'type' => 'nullable|integer|in:1,2,3',
'message' => 'nullable|required_if:type:2'
みたいに書くと、エラーメッセージが タイプが2の場合はメッセージを入力してください。
2ってなんだよ!って感じ。
これをLaravelで翻訳対応するなら、resources/lang/言語/validation.phpのcustomに書いてあげれば対応できます。
ただこの翻訳ファイルだと、typeが1回しか使えないです。
であれば、個別に対応したいですよね。
ということで本題です
FormRequestでこのvalue値を翻訳する方法をここから書きます。
環境
- Laravel6.x系
対応ソース
protected function getValidatorInstance()
{
$validator = parent::getValidatorInstance();
$validator->setValueNames(['type' => [2 => '新着']]);
return $validator;
}
Validatorクラスに$customValuesのプロパティを持ってます。 このプロパティに翻訳する情報を入れてあげるとvalue値が翻訳されます。
$customValuesプロパティに値をセットするのが、setValueNamesメソッドになります。
FormRequestは標準ではValidatorクラスをgetValidatorInstanceメソッドで解決しているため、そちらを継承して
ValidatorクラスにsetValueNamesを使って翻訳を入れている形です。
こうすることで、バリデーションのエラーメッセージが
タイプが新着の場合はメッセージを入力してください。
となります。
本日は以上です。