[英]Loop through JSON array in PHP laravel
控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
class welcomeController extends Controller
{
public function welcome() {
$cards = json_decode('[{
"id": 1,
"name ": "a",
"class": "class1"
}, {
"id": 2,
"name ": "b",
"class": "class2"
}]');
return view('welcome', compact('cards'));
}
}
welcome.blade.php
@foreach($cards as $card)
<p>{{ $card->name }} </p>
<p>{{ $card->class }} </p>
@endforeach
我是PHP laravel的新手。 請幫助我找到合適的解決方案。謝謝。
嘗試
return view('welcome')->with("cards",$cards);
您好,您的代碼中一切正常,問題出在json變量中
$cards = json_decode('[{
"id": 1,
"name": "a",
"class": "class1"
}, {
"id": 2,
"name": "b",
"class": "class2"
}]
');
鍵“名稱”內部有一些空間,因此鑒於您正試圖以“名稱”訪問,這就是錯誤即將來臨的原因
從您的屏幕快照中,發送到模板的'cards'值是一個數組數組,而不是您的代碼片段將生成的對象數組。
json_decode()
的第二個參數是是否轉換為關聯數組,默認為不。
發生錯誤是因為您的json數組是多維的,而您的welcome.blade.php正在調用在該數組級別上不存在的name和class變量。
在您的welcome.blade.php中,將您的foreach更改為:
@foreach($cards[0] as $card)
<p>{{ $card->name }} </p>
<p>{{ $card->class }} </p>
@endforeach
我相信那會讓您重回正軌。 希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.