Explorar o código

Helper::array方法更改为自动过滤空字符串和null类型值

jqh %!s(int64=6) %!d(string=hai) anos
pai
achega
939b102a43
Modificáronse 2 ficheiros con 7 adicións e 19 borrados
  1. 3 17
      src/Form/Field/Tree.php
  2. 4 2
      src/Support/Helper.php

+ 3 - 17
src/Form/Field/Tree.php

@@ -4,6 +4,7 @@ namespace Dcat\Admin\Form\Field;
 
 use Dcat\Admin\Admin;
 use Dcat\Admin\Form\Field;
+use Dcat\Admin\Support\Helper;
 use Dcat\Admin\Widgets\Checkbox as WidgetCheckbox;
 use Illuminate\Contracts\Support\Arrayable;
 use Illuminate\Support\Arr;
@@ -200,14 +201,7 @@ class Tree extends Field
     {
         $value = Arr::get($data, $this->column);
 
-        if ($value && is_string($value)) {
-            return explode(',', $value);
-        }
-        if (!is_array($value)) {
-            return $value ? (array)$value : [];
-        }
-
-        return $value;
+        return Helper::array($value, true);
     }
 
     /**
@@ -218,15 +212,7 @@ class Tree extends Field
      */
     public function prepare($value)
     {
-        if (is_array($value)) {
-            return $value;
-        }
-
-        if ($value && is_string($value) ) {
-            return explode(',', $value);
-        }
-
-        return $value ? (array)$value : [];
+        return Helper::array($value, true);
     }
 
     public function render()

+ 4 - 2
src/Support/Helper.php

@@ -17,7 +17,7 @@ class Helper
      * @param bool $filter
      * @return array
      */
-    public static function array($value, bool $filter = false)
+    public static function array($value, bool $filter = true)
     {
         if (!$value) {
             return [];
@@ -40,7 +40,9 @@ class Helper
 
         }
 
-        return $filter ? array_filter($value) : $value;
+        return $filter ? array_filter($value, function ($v) {
+            return $v !== '' && $v !== null;
+        }) : $value;
     }
 
     /**