Mysql Laravel-更改前后的雄辩日志记录
我有一个简单的问题,每当我使用Eloquent编辑数据库中的记录时,我希望能够在保存之前和之后记录此行的值 到目前为止,我的解决方案是:Mysql Laravel-更改前后的雄辩日志记录,mysql,eloquent,laravel-5.2,Mysql,Eloquent,Laravel 5.2,我有一个简单的问题,每当我使用Eloquent编辑数据库中的记录时,我希望能够在保存之前和之后记录此行的值 到目前为止,我的解决方案是: 我有一个扩展了Eloquent的父模型类:App\Models\model.php 然后我的所有其他模型都扩展了这个Model.php,所以在这个文件中,我覆盖了雄辩的save()方法 但是当调用save方法时,雄辩的builder对象有了新的值,旧的值已经被覆盖 关于如何执行此操作,有什么想法吗?您可以使用模型事件来执行此操作,有许多事件,如保存,更新,
- 我有一个扩展了Eloquent的父模型类:App\Models\model.php
- 然后我的所有其他模型都扩展了这个Model.php,所以在这个文件中,我覆盖了雄辩的save()方法
关于如何执行此操作,有什么想法吗?您可以使用模型事件来执行此操作,有许多事件,如
保存
,更新
,删除
。。。欲知详情
使用现有的工具,如或甜,看起来不错!但是,如何获取用于此的原始sql?您知道吗?您需要执行的查询是什么?因此您可以使用
DB::getQueryLog()
为此,您可以使用DB::enableQueryLog()启用它代码>:)
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;
}
);
}
}