From 7858566e1eb555f7d750c8c2a4f476ff75a3ce26 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Wed, 5 May 2021 14:22:07 +0930 Subject: [PATCH] Laravel validation: support nested validation messages --- src/functions_laravel.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/functions_laravel.php b/src/functions_laravel.php index 66337da..882c884 100644 --- a/src/functions_laravel.php +++ b/src/functions_laravel.php @@ -27,6 +27,7 @@ function rules($rules, array $messages = [], array $customAttributes = []) return function (callable $fail, $value, $model, Context $context, Field $field) use ($rules, $messages, $customAttributes) { $key = $field->getName(); $validationRules = [$key => []]; + $validationMessages = [$key => []]; foreach ($rules as $k => $v) { if (! is_numeric($k)) { @@ -36,7 +37,15 @@ function rules($rules, array $messages = [], array $customAttributes = []) } } - $validation = Validator::make($value !== null ? [$key => $value] : [], $validationRules, $messages, $customAttributes); + foreach ($messages as $k => $v) { + if (! is_numeric($k)) { + $validationMessages[$key.'.'.$k] = $v; + } else { + $validationMessages[$key][] = $v; + } + } + + $validation = Validator::make($value !== null ? [$key => $value] : [], $validationRules, $validationMessages, $customAttributes); if ($validation->fails()) { foreach ($validation->errors()->all() as $message) {