Browse Source

Helper::array

update
jqh 5 years ago
parent
commit
663cc42a98
1 changed files with 11 additions and 1 deletions
  1. 11 1
      src/Support/Helper.php

+ 11 - 1
src/Support/Helper.php

@@ -5,6 +5,7 @@ namespace Dcat\Admin\Support;
 use Dcat\Admin\Grid;
 use Illuminate\Contracts\Support\Arrayable;
 use Illuminate\Contracts\Support\Htmlable;
+use Illuminate\Contracts\Support\Jsonable;
 use Illuminate\Contracts\Support\Renderable;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Artisan;
@@ -52,10 +53,19 @@ class Helper
         }
 
         if (is_array($value)) {
+        } elseif ($value instanceof Jsonable) {
+            $value = json_decode($value->toJson(), true);
         } elseif ($value instanceof Arrayable) {
             $value = $value->toArray();
         } elseif (is_string($value)) {
-            $value = explode(',', $value);
+            $array = null;
+
+            try {
+                $array = json_decode($value, true);
+            } catch (\Throwable $e) {
+            }
+
+            $value = is_array($array) ? $array : explode(',', $value);
         } else {
             $value = (array) $value;
         }