众所周知,Laravel的模型事件会在某些情况下触发,我们可以对它们执行操作,如创建,创建,保存,保存等。我想知道的是我们怎么知道哪个列更新了让我们说'已保存'事件就像用户已更新,当然保存和保存的事件被触发,在这些事件中可以知道哪个列已更新并执行相应的操作?提前谢谢。
答案 0 :(得分:3)
正如@Joel Hinz所说,你可以使用getDirty()
方法。
getDirty() - 获取自上次同步以来已更改的属性
此方法将返回一个名称为已更改列的数组:
public function boot()
{
User::saving(function ($user) {
$columns = $user->getDirty();
foreach ($columns as $column => $newValue) {
echo $column; // One of the changed columns.
}
});
}