2014-12-11 47 views
2

將如下所示的JSON字符串傳遞給View之後。當我做...使用Laravel刀片模板來正確循環JSON內容的方法?

<p>{{ $sets }}</p> 

我得到...

[{"name":"A"},{"name":"B"}, ... ,{"name":"Z"}] 

然而,當我嘗試...

@foreach ($sets as $set) 
    <p>{{ $set->name }}</p> 
@endforeach 

,我發現了錯誤,「無效的參數提供給foreach()「。

我很確定這是一個簡單的問題,雖然我不確定有什麼問題。

+2

很可能它仍然是一個json字符串,試圖在foreach循環中輸入它之前使用'json_decode()' – Ghost 2014-12-11 01:18:59

+0

工作正常!謝謝! :) – rotaercz 2014-12-11 01:19:37

+0

沒有概率,很高興解決了它 – Ghost 2014-12-11 01:21:03

回答

0

你使用Json_Decode來創建$ sets變量嗎?

嘗試這樣的事情,以確保不存在解析錯誤,發生的事情:

$sets = json_decode($data); 

    switch (json_last_error()) { 

     case JSON_ERROR_DEPTH: 
      $json_error = 'Maximum stack depth exceeded'; 
      break; 
     case JSON_ERROR_STATE_MISMATCH: 
      $json_error = 'Underflow or the modes mismatch'; 
      break; 
     case JSON_ERROR_CTRL_CHAR: 
      $json_error = 'Unexpected control character found'; 
      break; 
     case JSON_ERROR_SYNTAX: 
      $json_error = 'Syntax error, malformed JSON'; 
      break; 
     case JSON_ERROR_UTF8: 
      $json_error = 'Malformed UTF-8 characters, possibly incorrectly encoded'; 
      break; 
    } 

之後,嘗試加入的var_dump($集),看看每個項目是一個對象或數組。你所描述的方式只有在它是一個對象時纔會起作用。

@foreach ($sets as $set) 
    <?php var)dump($set); ?> 
@endforeach