首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[attributes:protected]和[original:protected]的区别

[attributes:protected]和[original:protected]的区别
EN

Stack Overflow用户
提问于 2017-02-03 04:10:13
回答 1查看 956关注 0票数 0

有人能给我解释一下在对数组使用print_r时,laravel中的attributes:protected array和original:protected array之间的区别吗?

EN

回答 1

Stack Overflow用户

发布于 2017-02-03 19:54:33

当Model从表中读取数据时,数组“original”和“attribute”包含相同的数据。当您更改属性值(例如$user->name='John')时,更改仅反映在'attributes‘数组上,但'original’保持不变。(因此而得名)。

当模型上的update()被调用时,方法通过比较两个数组来检查发生了什么变化,并只为发生变化的字段构造查询。因此,在$users->name change的情况下,Laravel不会创建此代码:

代码语言:javascript
复制
UPDATE users set name = 'John', password = 'pass', email = 'email' where id = 1

但这一点:

代码语言:javascript
复制
UPDATE users set name = 'John' where id = 1

这可能不是Eloquent使用'original‘数组的唯一方式。当您需要了解Eloquent背后的情况时,我发现clockwork很有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42011429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档