我正在尝试在我的数据库(mysql db)中记录所有更改。
我需要知道哪些字段更新了哪些表,所以经过一些研究,我遇到了getDirty()
方法,但它总是返回一个空数组,下面是我的简单代码示例:
public function update($id, Request $request)
{
$article = Article::findOrFail($id);
$article->update($request->all());
return $article->getDirty();
}
你知道为什么什么都不还吗?
最佳答案
这是因为你在更新数据库后调用了$article->getDirty();
。
您可以使用模型事件进行此操作,有许多事件,如saving
、updating
、deleting
。。。更多细节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;
}
);
}
}
关于php - Laravel 5.2 getDirty总是空数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38683960/