소스 검색

Helper::array

update
jqh 5 년 전
부모
커밋
663cc42a98
1개의 변경된 파일11개의 추가작업 그리고 1개의 파일을 삭제
  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;
         }