laravel报错此集合实例上不存在属性[id]

发布时间:2023-02-21 23:43:28 阅读:796次

最近在使用laravel的过程中

出现以下错误

Whoops, looks like something went wrong. Property [id] does not exist on this collection instance.

经过认真调试发现是关联关系的问题

简单说来取的是二维集合的属性,于是报错

解决办法取二维集合的第一个元素,然后再取属性值

我的原因是因为我用的是 ->get() 查询,但是我只有一条数据,get查询返回的是一个二维数组,需要使用$arr[0]->id,这样是方式,或者一条数据时直接使用->first(),的方式就可以解决了

我在使用 eloquent 关系时也遇到了类似的错误,问题是我使用的是 return $this->hasMany(ClassName::class); 但关系是一对一的,所以问题的解决方案是 return $this->hasOne(ClassName::class); 。

在上面的示例中,第一个代码段将返回对象数组,这些对象将分解链式 eloquent 代码中的 eloquent 关系流,例如 $firstChain->middleChain->requiredData

在这里,如果 middleChain 有 arrayOfObjects 它会导致上述错误说 property doesn't exist 。

使用 eloquent 关系时要小心正确提及它所具有的关系类型

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:laravel报错此集合实例上不存在属性[id] 出自老鄢博客 | 欢迎分享