Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

dmag's avatar
Level 6

How to show input in custom messages for enum validation rule

I have a form request validation with enum rule. I need to show the input in the custom error message, but it comes back as "empty".

public function rules(): array
{
    return [
        'settings' => [
            'required',
            'array',
        ],
        'settings.*.name' => [
            'required',
            Rule::enum(SettingEnum::class),
        ],
        'settings.*.value' => [
            'required',
            'string',
        ],
    ];
}

public function messages(): array
{
    return [
        'settings.*.name' => [
            'enum' => 'The setting :input is invalid',
        ],
    ];
}

but in the error response, the :input reads "empty":

{
  "message": "The setting empty is invalid",
  "errors": {
    "enum": [
      "The setting empty is invalid"
    ]
  }
}
0 likes
1 reply
JussiMannisto's avatar

I think the right validation message isn't being used. Try:

use Illuminate\Validation\Rules\Enum;
...

'settings.*.name' => [
	Enum::class => 'The setting :input is invalid',
],

Please or to participate in this conversation.