如何在视图中访问控制器传递的数组?附代码示例
正确访问数组数据并展示的方法
你的问题核心是数据类型不匹配:控制器传递的$data是索引数组嵌套关联数组,但视图里用了对象属性访问语法($item->name),这会导致报错。同时视图里的<tr>标签存在未正确闭合的问题,需要修正。
修正后的视图代码
@foreach($data as $item) <tr> <td>{{ $loop->iteration }}</td> <td>{{ ucwords($item['name']) }}</td> <td>{{ $item['desc'] }}</td> <td>{{ $item['age'] }}</td> </tr> @endforeach
关键修改点
- 将对象访问语法
$item->xxx改为数组键访问语法$item['xxx'],匹配数据的数组结构 - 把最后一行的
<tr>修正为</tr>,确保HTML标签闭合
可选:将数组转为对象(如果偏好对象语法)
如果你习惯用->访问属性,可以在控制器里把数组转换为对象集合后再传递:
// 控制器中修改数据传递逻辑 $convertedData = collect($data)->map(function($item) { return (object)$item; }); return view($this->folder_path . 'index', compact('convertedData'));
之后视图里就可以继续用$item->name的语法,记得把循环变量改成$convertedData。
内容的提问来源于stack exchange,提问作者kennie
相关产品推荐
相关产品推荐

