Laravel中如何dump模型的attributes属性?
解决Laravel模型无法直接访问protected属性
attributes的问题 因为$model->attributes是Laravel Eloquent模型的protected属性,直接访问无法获取到值,给你几个实用的实现方式:
方法一:使用官方封装的
getAttributes()方法
这是最标准的官方解决方案,Laravel已经提供了获取属性数组的公共方法,直接调用即可:@dump($model->getAttributes());方法二:将模型转为数组/JSON查看
如果只是想快速查看所有属性数据,也可以直接把模型转为数组或格式化后的JSON,里面会包含完整的attributes内容:@dump($model->toArray()); // 或者转成带格式的JSON,可读性更强 @dump($model->toJson(JSON_PRETTY_PRINT));方法三:自定义模型方法(适合频繁使用场景)
要是你需要经常单独查看attributes,可以在对应的Eloquent模型里添加一个简单的公共方法:// 在你的模型类中添加 public function showAttributes() { return $this->attributes; }之后在视图里直接调用这个自定义方法:
@dump($model->showAttributes());
补充说明:直接访问$model->attributes返回null的原因是,Laravel模型通过魔术方法__get()处理属性访问,但仅针对不存在的公共属性生效;而attributes是protected属性,不在魔术方法的处理范围内,所以无法直接获取。
内容的提问来源于stack exchange,提问作者yossi
相关产品推荐
相关产品推荐

