Laravel Blade循环报错:Undefined variable $edibles问题咨询
解决Laravel视图中$edibles未定义的问题
问题原因
你当前的路由代码里,return view('pizza', $edibles); 是把数组$edibles的键名作为单独变量传递给视图,比如视图中会存在$fruits、$beverage等变量,但不会有$edibles这个整体数组变量,因此Blade模板循环$edibles时会提示未定义。
解决方案
有三种常用方式可以将$edibles数组完整传递给视图:
方式一:使用compact()函数
compact()会将变量名转换为关联数组的键,对应变量值为数组的值,这样视图就能拿到名为$edibles的变量:
Route::get('/pizza', function () { $edibles = [ 'fruits' => 'Apple', 'beverage' => 'Milo', 'soup' => 'Egusi', 'drink' => 'cocacola', ]; return view('pizza', compact('edibles')); });
方式二:手动构造关联数组
直接传递一个键为edibles的关联数组,明确指定视图接收的变量名:
Route::get('/pizza', function () { $edibles = [ 'fruits' => 'Apple', 'beverage' => 'Milo', 'soup' => 'Egusi', 'drink' => 'cocacola', ]; return view('pizza', ['edibles' => $edibles]); });
方式三:使用with()方法
通过视图实例的with()方法绑定变量:
Route::get('/pizza', function () { $edibles = [ 'fruits' => 'Apple', 'beverage' => 'Milo', 'soup' => 'Egusi', 'drink' => 'cocacola', ]; return view('pizza')->with('edibles', $edibles); });
修改路由后,Blade模板中的@foreach ($edibles as $data)就能正常遍历数组了。
内容的提问来源于stack exchange,提问作者Emiola Kosisochukwu
相关产品推荐
相关产品推荐

