You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中获取Eloquent模型attributes属性返回null问题

解决Laravel Eloquent模型获取attributes属性的问题

问题原因

Eloquent模型的__get()方法并非用来直接获取attributes这个受保护属性本身,它的作用是从attributes数组中取出指定键对应的字段值。当你调用$shop->__get("attributes")时,它会尝试在attributes数组里查找键为attributes的元素,而你的模型数据里不存在这个字段,所以返回null。

可行解决办法

  • 推荐方法:使用官方提供的公开方法
    Laravel Eloquent内置了getAttributes()方法,专门用于获取完整的attributes数组,直接调用即可:

    $x = $shop->getAttributes();
    
  • 不推荐方法:通过反射访问受保护属性
    如果你因特殊需求必须直接访问attributes属性(不建议这么做,会破坏封装性),可以用PHP反射机制:

    $reflection = new ReflectionObject($shop);
    $attributesProp = $reflection->getProperty('attributes');
    $attributesProp->setAccessible(true);
    $x = $attributesProp->getValue($shop);
    

内容的提问来源于stack exchange,提问作者Black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 01:13:01