Browse Source

增加 formData 方法

xaboy 6 years ago
parent
commit
7d53622f2d
1 changed files with 28 additions and 1 deletions
  1. 28 1
      src/Form.php

+ 28 - 1
src/Form.php

@@ -43,6 +43,8 @@ class Form
 
     protected $rule;
 
+    protected $formData = [];
+
     protected $dependScript = [
         '<script src="https://unpkg.com/jquery@3.3.1/dist/jquery.min.js"></script>',
         '<script src="https://unpkg.com/vue@2.5.13/dist/vue.min.js"></script>',
@@ -100,6 +102,27 @@ class Form
     }
 
     /**
+     * @param array $formData
+     * @return $this
+     */
+    public function formData(array $formData)
+    {
+        $this->formData = $formData;
+        return $this;
+    }
+
+    /**
+     * @param $field
+     * @param $value
+     * @return $this
+     */
+    public function setValue($field, $value)
+    {
+        $this->formData[$field] = $value;
+        return $this;
+    }
+
+    /**
      * @return false|string
      */
     public function parseHeaders()
@@ -284,7 +307,11 @@ class Form
     {
         $rules = [];
         foreach ($this->rule as $rule) {
-            $rules[] = $this->parseFormComponent($rule);
+            $rule = $this->parseFormComponent($rule);
+            if (isset($rule['field']) && isset($this->formData[$rule['field']])) {
+                $rule['value'] = $this->formData[$rule['field']];
+            }
+            $rules[] = $rule;
         }
         return $rules;
     }