Pārlūkot izejas kodu

contentType===json 时 判断 数据是否为数组

visuddhinanda 2 gadi atpakaļ
vecāks
revīzija
858152cb6a
1 mainītis faili ar 17 papildinājumiem un 12 dzēšanām
  1. 17 12
      app/Http/Api/MdRender.php

+ 17 - 12
app/Http/Api/MdRender.php

@@ -359,21 +359,26 @@ class MdRender{
             if($this->options['contentType'] === "json"){
                 $json = json_decode($markdown);
                 $nissayaWord = [];
-                foreach ($json as $word) {
-                    if(count($word->sn) === 1){
-                        //只输出第一层级
-                        $str = "{{nissaya|";
-                        if(isset($word->word->value)){
-                            $str .= $word->word->value;
-                        }
-                        $str .= "|";
-                        if(isset($word->meaning->value)){
-                            $str .= $word->meaning->value;
+                if(is_array($json)){
+                    foreach ($json as $word) {
+                        if(count($word->sn) === 1){
+                            //只输出第一层级
+                            $str = "{{nissaya|";
+                            if(isset($word->word->value)){
+                                $str .= $word->word->value;
+                            }
+                            $str .= "|";
+                            if(isset($word->meaning->value)){
+                                $str .= $word->meaning->value;
+                            }
+                            $str .= "}}";
+                            $nissayaWord[] = $str;
                         }
-                        $str .= "}}";
-                        $nissayaWord[] = $str;
                     }
+                }else{
+                    Log::error('json data is not array',['data'=>$markdown]);
                 }
+
                 $markdown = implode('',$nissayaWord);
             }else if($this->options['contentType'] === "markdown"){
                 $lines = explode("\n",$markdown);