gpt4 book ai didi

php - Eloquent - 比较 save() 模型后的属性变化

转载 作者:行者123 更新时间:2023-12-04 03:59:17 25 4
gpt4 key购买 nike

我正在我的应用程序中构建一个审计系统,我想比较一个 Eloquent 模型属性在 save() 方法之后的变化。这是我需要的示例:

$person = Person::find(1); //Original data: $person->name -> 'Original name', $person->age -> 22
$person->name = 'A new name';
$person->age = 23;
$person->save();

//At this point, I need to get an array like this (only with the attributes that have changed):
[
'age' => ['old' => 22, 'new' => 23],
'name' => ['old' => 'Original name', 'new' => 'A new name']
]

我知道 Eloquent 已经有一些函数,比如 isDirty()getDirty()getChanges(),但是这些方法只返回新值,我需要将旧值和新值存储在我的审计表中。

有什么方法可以做到这一点而无需“克隆”我的变量然后比较它以获得更改吗?

最佳答案

在保存模型之前,您可以访问原始(旧)属性值,例如:$person->original.

此外,您可以调用:$person->getChanges() 来获取所有已更改的属性。

关于php - Eloquent - 比较 save() 模型后的属性变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63340426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com