Laravel中Blade视图接收控制器集合数据展示异常问题
问题解决步骤
1. 修复foreach的语法错误
你当前的foreach代码里加了多余的{},这会被当成普通文本输出到页面,导致出现不必要的括号。Blade循环不需要这种大括号,正确写法如下:
@foreach($data as $result) <ul> {{ $result->price }} {{ $result->item }} </ul> @endforeach
2. 修改<p>标签显示指定字段
原来的<p>{{$data}}</p>直接输出整个集合,所以会显示集合的字符串形式(带括号)。如果要显示指定字段(比如第一条数据的quantity),需要先确认集合非空,再获取对应字段:
@if($data->isNotEmpty()) <p>{{ $data->first()->quantity }}</p> @endif
也可以用数组方式访问(Laravel集合支持数组式取值):
@if($data->isNotEmpty()) <p>{{ $data[0]['quantity'] }}</p> @endif
注意:必须先判断集合非空再取值,避免集合为空时触发报错。
完整修正后的视图代码
@if($data->isNotEmpty()) <p>{{ $data->first()->quantity }}</p> @foreach($data as $result) <ul> {{ $result->price }} {{ $result->item }} </ul> @endforeach @else <p>暂无数据</p> @endif
内容的提问来源于stack exchange,提问作者user21182377
相关产品推荐
相关产品推荐

