php - 此集合实例上不存在属性 [id] - Laravel 6
问题描述
我正在尝试使用 foreach 将数据加载到表中,但出现错误
此集合实例上不存在属性 [id]。
我可能做错了什么?
响应如下所示:
{
"id": 1,
"name": "Apple",
"messages": [
{
"id": 7,
"received": 0
}
]
}
控制器
public function show()
{
$items = Item::with('messages')->where('user_id', Auth::user()->id)->get();
return view('home', compact('items'));
}
看法
@foreach($details as $detail)
<td>{{ $details->messages->id }}</td>
@endforeach
解决方案
看起来您在Item
表上与表进行的连接会Messages
在字段中返回一个列表messages
。此处显示:
{"id":1,"name":"Apple""messages":[{"id":7,"received":0}]}
注意[{"id":7,"received":0}]
.
要获取消息的单个 ID,您首先需要在messages
列表中建立索引。或者您可以将查询更改为仅从每个项目中选择一条消息。
推荐阅读
- python - 关于 Pandas 系列操作返回视图或副本的保证
- javascript - 如何在linux中打印.sh文件
- swift - 获取要 reloadRow 的值的特定 IndexPath
- c - 在 c 中使用 Pipe() 卡在 read() 上的程序
- javascript - JQueryBuilder 将规则保存在 sql 表中
- javascript - 具有嵌套 ng-repeat 的 AngularJS 过滤器数组
- r - 错误:在循环中使用 lm() 时变量的类型(列表)无效
- python - 如何使用带有限定符测试的 pytest 运行多个测试
- python - torchvision 安装问题:avcodec-58.dll not found
- c++ - 将指向对象的指针作为参数传递给 std::thread 时的内存可见性