控制器:
<?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的新手。请帮我找到合适的解决方案。谢谢。
答案 0 :(得分:1)
尝试
return view('welcome')->with("cards",$cards);
答案 1 :(得分:1)
您好,代码中的一切正常问题出在json变量
中$cards = json_decode('[{
"id": 1,
"name": "a",
"class": "class1"
}, {
"id": 2,
"name": "b",
"class": "class2"
}]
');
关键&#34;名称&#34;内部有一些空间,所以在你看来,你需要访问&#34; name&#34;这就是错误发生的原因
答案 2 :(得分:0)
从屏幕截图中,发送到模板的'cards'值是一个数组数组,而不是代码片段会产生的对象数组。
json_decode()
的第二个参数是否转换为关联数组,默认为默认值。
答案 3 :(得分:0)
错误正在发生,因为你的json数组是多维的,而welcome.blade.php正在调用name和class的变量,这些变量在数组的那个级别不存在。
在welcome.blade.php中,改变你的foreach说:
@foreach($cards[0] as $card)
<p>{{ $card->name }} </p>
<p>{{ $card->class }} </p>
@endforeach
我相信这会让你回到正轨。希望有所帮助!