在将print_r用于数组时,有人可以向我解释laravel中[attributes:protected]数组和[original:protected]数组之间的区别吗?
答案 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很有帮助。