====== 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 に任意のメッセージを表示することが可能です。 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; } }