foreach刀片视图中的laravel 5.6错误

时间:2018-06-14 14:16:47

标签: php laravel

在迭代数组数组期间,我遇到了这个错误:

  

为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));

3 个答案:

答案 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