Laravel模型事件 - 对特定列更新执行操作

时间:2016-09-21 12:51:47

标签: php laravel laravel-5

众所周知,Laravel的模型事件会在某些情况下触发,我们可以对它们执行操作,如创建,创建,保存,保存等。我想知道的是我们怎么知道哪个列更新了让我们说'已保存'事件就像用户已更新,当然保存和保存的事件被触发,在这些事件中可以知道哪个列已更新并执行相​​应的操作?提前谢谢。

1 个答案:

答案 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.
        }
    });
}