Laravel validation: support nested validation messages

This commit is contained in:
Toby Zerner 2021-05-05 14:22:07 +09:30
parent 569371b4d2
commit 7858566e1e
1 changed files with 10 additions and 1 deletions

View File

@ -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) {