浏览代码

修复hasMany无法删除最后一个选项的问题

jqh 5 年之前
父节点
当前提交
684feeea9d
共有 1 个文件被更改,包括 9 次插入1 次删除
  1. 9 1
      src/Form/Field/HasMany.php

+ 9 - 1
src/Form/Field/HasMany.php

@@ -311,7 +311,15 @@ class HasMany extends Field
         $form = $this->buildNestedForm($this->column, $this->builder);
 
         return array_values(
-            $form->setOriginal($this->original, $this->getKeyName())->prepare($input)
+            collect($form->setOriginal($this->original, $this->getKeyName())->prepare($input))
+                ->reject(function ($item) {
+                    return $item[NestedForm::REMOVE_FLAG_NAME] == 1;
+                })
+                ->map(function ($item) {
+                    unset($item[NestedForm::REMOVE_FLAG_NAME]);
+                    return $item;
+                })
+                ->toArray()
         );
     }