jqh 4 years ago
parent
commit
a3479847dd
4 changed files with 20 additions and 12 deletions
  1. 8 2
      src/Form.php
  2. 7 1
      src/Form/Builder.php
  3. 3 7
      src/Form/Concerns/HasFiles.php
  4. 2 2
      tests/Browser/Cases/MenuTest.php

+ 8 - 2
src/Form.php

@@ -324,7 +324,13 @@ class Form implements Renderable
      */
     public function fields()
     {
-        return $this->builder->fields();
+        $fields = $this->builder->fields();
+
+        if ($steps = $this->builder->stepBuilder()) {
+            $fields = $fields->merge($steps->fields());
+        }
+
+        return $fields;
     }
 
     /**
@@ -659,7 +665,7 @@ class Form implements Renderable
     {
         Arr::forget($input, $this->ignored);
 
-        $ignored = $this->fields()->merge($this->multipleSteps()->fields())->map(function (Field $field) {
+        $ignored = $this->fields()->map(function (Field $field) {
             if ($field instanceof Field\Display || $field->getAttribute('readonly') || $field->getAttribute('disabled')) {
                 return $field->column();
             }

+ 7 - 1
src/Form/Builder.php

@@ -486,9 +486,15 @@ class Builder
      */
     public function field($name)
     {
-        return $this->fields->first(function (Field $field) use ($name) {
+        $field = $this->fields->first(function (Field $field) use ($name) {
             return $field === $name || $field->column() == $name;
         });
+
+        if (! $field) {
+            $field = $this->stepField($name);
+        }
+
+        return $field;
     }
 
     /**

+ 3 - 7
src/Form/Concerns/HasFiles.php

@@ -66,11 +66,7 @@ trait HasFiles
      */
     public function findFieldByName(?string $column)
     {
-        if ($field = $this->builder->field($column)) {
-            return $field;
-        }
-
-        return $this->builder->field($column) ?: $this->builder->stepField($column);
+        return $this->builder->field($column);
     }
 
     /**
@@ -95,7 +91,7 @@ trait HasFiles
         }
 
         if (empty($relation)) {
-            $field = $this->builder->field($column) ?: $this->builder->stepField($column);
+            $field = $this->findFieldByName($column);
         } else {
             $field = $this->getFieldByRelationName($relation[0], $column);
         }
@@ -115,7 +111,7 @@ trait HasFiles
      *
      * @return mixed
      */
-    protected function getFieldByRelationName($relation, $column)
+    public function getFieldByRelationName($relation, $column)
     {
         $relation = $this->findFieldByName($relation);
 

+ 2 - 2
tests/Browser/Cases/MenuTest.php

@@ -116,8 +116,8 @@ class MenuTest extends TestCase
                         }, 2)
                         ->clickLink(__('admin.submit'));
                 }, 2)
-                ->waitForText(__('admin.update_succeeded'), 2)
-                ->waitForLocation(admin_base_path('auth/menu'), 1)
+                ->waitForText(__('admin.save_succeeded'), 3)
+                ->waitForLocation(admin_base_path('auth/menu'), 3)
                 ->waitForText('balabala', 2);
 
             // 检测是否写入数据库