Laravel报错:Invalid argument supplied for foreach() 求助
问题排查与解决
嘿,我一眼就瞅到你报错的根源啦!这个Invalid argument supplied for foreach()错误,完全是因为你在Blade视图的foreach循环里写错了变量名。
具体错误点
在你的contact.blade.php里,这一行代码:
@foreach(@people as $person)
你把数组变量$people写成了@people——Blade里引用传递过来的变量必须用**美元符号$**开头,而@是用来标记Blade指令(比如@foreach、@if)的,所以这里@people根本不是你控制器里传过来的那个数组,自然会给foreach传递无效参数。
修正后的完整视图代码
把@people改成$people就搞定了,修正后的代码如下:
@extends('layouts.app') @section('content') <h1>Contact Page</h1> @if (count($people)) <ul> @foreach($people as $person) {{-- 这里把@改成$ --}} <li>{{$person}}</li> @endforeach </ul> @endif @endsection @section('footer') @endsection
额外小建议
其实Laravel里判断数组是否非空可以更简洁,@if(count($people))可以直接写成@if($people),因为空数组在PHP中会被视为布尔值false,这样代码更清爽~
内容的提问来源于stack exchange,提问作者user5265806
相关产品推荐
相关产品推荐

