在迭代数组数组期间,我遇到了这个错误:
为foreach()提供的参数无效(查看: C:\ XAMPP \ htdocs中\ smartcalws \资源\视图\位置\ index.blade.php
在视图中的代码下方:
@foreach($Nations as $e)
<tr>
<th scope="row">{{$e->id}}</th>
<td>{{$e->name}}</td>
@foreach($e->districts as $d)
<td>{{$d->name}}</td>
@endforeach
@endforeach
谁知道为什么?
在控制器中,如果我执行foreach,所有工作都可以正常使用echo:
foreach($Nations as $e){
foreach($e->districts as $d){
echo $d->name;
}
}
所有国家都有地区。回声打印所有地区。我认为问题出现在刀片页面中......
return view('Nations.index',compact('Nations',$Nations));
答案 0 :(得分:2)
刀片看起来正确。确保将Nations
中的正确参数传递到刀片视图。它可能会抱怨第一个foreach。您需要控制器中的以下内容。
return view('yourview', [
'Nations' => $Nations
]);
与使用小写变量名一致也许也很好。也许您传递的是密钥nations
,但希望使用Nations
。
答案 1 :(得分:2)
您的问题是将数据发送到视图
compact('Nations', $Nations) // It's wrong
尝试以下方式:
return view('Nations.index', compact('Nations'));
return view('Nations.index', ['Nations' => $Nations]);
return view('Nations.index')->withNations($Nations);
return view('Nations.index')->with('Nations', $Nations);
答案 2 :(得分:1)
确保将阵列传递给刀片。
此外,如果数组计数为&gt;,您应该检查循环。 0