Browse Source

简化Form字段validation message设置

jqh 5 years ago
parent
commit
122bdb1bfc
2 changed files with 23 additions and 8 deletions
  1. 22 1
      src/Form/Concerns/FieldValidator.php
  2. 1 7
      src/Form/Field/DateRange.php

+ 22 - 1
src/Form/Concerns/FieldValidator.php

@@ -5,6 +5,7 @@ namespace Dcat\Admin\Form\Concerns;
 use Dcat\Admin\Form;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Validator;
+use Illuminate\Support\Str;
 
 /**
  * @property Form $form
@@ -387,7 +388,27 @@ trait FieldValidator
             $messages = $this->validationMessages['update'] ?? $messages;
         }
 
-        return $messages;
+        $result = [];
+
+        foreach ($messages as $k => $v) {
+            if (Str::contains($k, '.')) {
+                $result[$k] = $v;
+                continue;
+            }
+
+            if (is_string($this->column)) {
+                $k = $this->column . '.' . $k;
+
+                $result[$k] = $v;
+                continue;
+            }
+
+            foreach ($this->column as $column) {
+                $result[$column.'.'.$k] = $v;
+            }
+        }
+
+        return $result;
     }
 
 

+ 1 - 7
src/Form/Field/DateRange.php

@@ -69,13 +69,7 @@ JS;
     public function getValidationMessages()
     {
         // Default validation message.
-        $messages = $this->validationMessages['default'] ?? [];
-
-        if (request()->isMethod('POST')) {
-            $messages = $this->validationMessages['creation'] ?? $messages;
-        } elseif (request()->isMethod('PUT')) {
-            $messages = $this->validationMessages['update'] ?? $messages;
-        }
+        $messages = parent::getValidationMessages();
 
         $result = [];
         foreach ($messages as $key => $message) {