dtlc84438 2015-11-27 22:48
浏览 339

foreach与空数组的错误

I'm working in Laravel 5 using Blade as motor of templates. I'm passing an array from the controller to the view, and I noticed that when I loop on it using the foreach clausule and the array is empty it gives error, exactly this:

Invalid argument supplied for foreach() 

I had the same error in the controller and I fix it temporaly making:

if(count($student)!=0)

I said temporaly because I don't think it this the best way to do it. The code in the controller is:

foreach($students as $student){
        if(count($student->contracts)!=0)
            foreach($student->contracts as $contract){
                 //something
            }//end foreach
    }//end foreach

I made some operations over the arrays, and then I send them to the view:

return view('myview')->with(['students'=>$students]);

The array is passing to the view correctly. I said is the foreach, beacause earlier I had the database full of registers and it worked fine, but now I have some students that doesn't have contracts and then I got that error. But, in the view I have the same error. So, it's normal? how could I fix it in a better way? why when the array is empty the foreach clausule gives that error?

  • 写回答

2条回答 默认 最新

  • dongyumiao5210 2015-11-27 23:08
    关注

    Try this

    $people = [
            "Person A", "Person B", "Person C"
    ];
    return view ('pages', compact('people'));
    

    and loop through it like this:

    @if (count($people))
        <h3>People:</h3>
        <ul>
            @foreach($people as $person)
                <li>{{ $person }}</li>
            @endforeach
        </ul>
    @endif
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!