gpt4 book ai didi

mysql - Laravel - Eloquent 日志记录更改前后

转载 作者:行者123 更新时间:2023-11-29 02:16:32 27 4
gpt4 key购买 nike

我有一个简单的问题,每当我使用 Eloquent 编辑数据库中的记录时,我希望能够在保存前后记录该行的值。

到目前为止我的解决方案:

  • 我有一个扩展 Eloquent 的父模型类:App\Models\Model.php
  • 然后我的所有其他模型都扩展了这个 Model.php,所以在这个文件中,我重写了 eloquent save() 方法。

但是此时,save方法被调用,eloquent builder对象有了新的值,旧的已经被覆盖了。

关于如何做到这一点有什么想法吗?

最佳答案

您可以为此使用模型事件,有许多事件,例如savingupdatingdeleting ...更多详细信息look here

class SomeModel extends Eloquent {

protected static function boot()
{
parent::boot(); // don't forget to call the parent boot method
//On saving
static::saving(
function($record)
{
$dirty = $record->getDirty();
foreach ($dirty as $field => $newdata)
{
$olddata = $record->getOriginal($field);
if ($olddata != $newdata)
{
// Do what it takes here :)
}
}
return true;
}
);
}
}

关于mysql - Laravel - Eloquent 日志记录更改前后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724037/

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