我正在我的应用程序中构建一个审核系统,并且我想比较save()方法后 Eloquent 模型属性的变化。这是我需要的示例:
$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(),但是这个方法只返回新值,我需要将旧值和新值存储在我的审计表中。
有没有什么方法可以做到这一点,而不需要“克隆”我的变量,然后比较它以获取更改?
叮当猫咪
慕哥6287543
手掌心
白衣染霜花