jqh 4 лет назад
Родитель
Сommit
8d1d99704a

+ 1 - 5
resources/views/form/container.blade.php

@@ -15,8 +15,4 @@
 </div>
 {!! $form->renderFooter() !!}
 
-@foreach($form->hiddenFields() as $field)
-    @if(! $field->hasAttribute(Dcat\Admin\Form\Field::BUILD_IGNORE))
-        {!! $field->render() !!}
-    @endif
-@endforeach
+{!! $form->renderHiddenFields() !!}

+ 17 - 2
src/Form/Builder.php

@@ -68,7 +68,7 @@ class Builder
     protected $mode = self::MODE_CREATE;
 
     /**
-     * @var array
+     * @var Field[]
      */
     protected $hiddenFields = [];
 
@@ -795,7 +795,9 @@ class Builder
                 );
             }
 
-            $content = $this->layout->build();
+            $content = $this->layout->build(
+                $this->renderHiddenFields()
+            );
         }
 
         return "{$open}{$content}{$this->close()}";
@@ -833,4 +835,17 @@ $('#{$this->getElementId()}').form({
 JS
         );
     }
+
+    public function renderHiddenFields()
+    {
+        $html = '';
+
+        foreach ($this->hiddenFields as $field) {
+            if (! $field->hasAttribute(Field::BUILD_IGNORE)) {
+                $html .= $field->render();
+            }
+        }
+
+        return $html;
+    }
 }

+ 5 - 3
src/Form/Layout.php

@@ -142,11 +142,13 @@ class Layout
     }
 
     /**
-     * Build html of content.
+     * Build html of content
+     *
+     * @param string $add
      *
      * @return string
      */
-    public function build()
+    public function build($add = null)
     {
         $html = '<div class="row">';
 
@@ -154,7 +156,7 @@ class Layout
             $html .= $column->render();
         }
 
-        return $html.'</div>';
+        return $html.'</div>'.$add;
     }
 
     public function getColumns()

+ 14 - 8
tests/Controllers/PainterController.php

@@ -67,18 +67,24 @@ class PainterController extends AdminController
     protected function form()
     {
         return Form::make(Painter::with('paintings'), function (Form $form) {
-            $form->display('id', 'ID');
+            $form->block(6, function (Form\BlockForm $form) {
+                $form->showFooter();
 
-            $form->text('username')->rules('required');
-            $form->textarea('bio')->rules('required');
+                $form->display('id', 'ID');
 
-            $form->hasMany('paintings', function (Form\NestedForm $form) {
-                $form->text('title');
-                $form->textarea('body');
-                $form->datetime('completed_at');
+                $form->text('username')->rules('required');
+                $form->textarea('bio')->rules('required');
             });
 
-            $form->display('created_at', 'Created At');
+            $form->block(6, function (Form\BlockForm $form) {
+                $form->hasMany('paintings', function (Form\NestedForm $form) {
+                    $form->text('title');
+                    $form->textarea('body');
+                    $form->datetime('completed_at');
+                });
+
+                $form->display('created_at', 'Created At');
+            });
         });
     }
 }