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

最近在使用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 关系时要小心正确提及它所具有的关系类型

    A+
发布日期:2023年02月21日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: