ユーザ用ツール

サイト用ツール


サイドバー

プログラム言語:php:laravel:バリデーション:formrequestのバリデーションメッセージのvalueに任意のメッセージを使う

FormRequest のバリデーションメッセージの :value に任意のメッセージを使う

以下のように rules で required_if などを使いバリデーションを行った場合

    public function rules()
    {
        return [
            'type' => 'required|in:pet,doll',
            'age' => 'required_if:type:pet|nullable|integer|between:0,200',
        ];
    }

エラーメッセージが以下のようになってしまいます。

タイプがpetの場合、年齢も指定してください。

これを、選択した内容によって、以下のように日本語のメッセージが表示されるようにしたい時。

タイプがペットの場合、年齢も指定してください。

getValidatorInstance で設定することで value に任意のメッセージを表示することが可能です。

ExampleRequest.php

class ExampleRequest extends FormRequest
{
    public function rules()
    {
        return [
            'type' => 'required|in:pet,doll',
            'age' => 'required_if:type:pet|nullable|integer|between:0,200',
        ];
    }

    public function messages()
    {
        return [
            'type' => 'タイプ',
            'age' => '年齢',
        ];
    }

    protected function getValidatorInstance()
    {
        $validator = parent::getValidatorInstance();

        $validator->setValueNames([
            'type' => [
                'pet' => 'ペット',
                'doll' => '人形',
            ],
        ]);

        return $validator;
    }
}

コメント

コメントを入力. Wiki文法が有効です:
 
プログラム言語/php/laravel/バリデーション/formrequestのバリデーションメッセージのvalueに任意のメッセージを使う.txt · 最終更新: 2021/03/26 17:56 by humolife