[attributes:protected]和[original:protected]之间的区别

时间:2017-02-02 20:10:13

标签: laravel eloquent laravel-5.3

在将print_r用于数组时,有人可以向我解释laravel中[attributes:protected]数组和[original:protected]数组之间的区别吗?

1 个答案:

答案 0 :(得分:0)

当Model从表中读取数据时,数组' original'和'属性'包含相同的数据。当您更改属性值(ex $ user-> name =' John')时,更改仅反映在'属性'阵列,但原始'保持不变。 (因此得名)。

当调用模型上的update()时,方法会检查比较两个数组的更改内容,并仅针对更改的字段构造查询。因此,在$ users->名称更改的情况下,Laravel将不会创建此代码:

repeat
  display("Please enter your input: ")
  input <- getInput()
until (isValid(input))

但是这个:

UPDATE users set name = 'John', password = 'pass', email = 'email' where id = 1

这可能不是Eloquent使用&#39; original&#39;阵列。当你需要了解在Eloquent的引导下发生了什么时,我发现clockwork很有帮助。