2016-09-21 28 views
0

我們都知道Laravel具有在特定實例上觸發的模型事件,並且我們可以對它們執行操作,如創建,創建,保存,保存等。要知道,我們如何才能知道哪個列已更新,可以說像用戶更新過的'已保存'事件,當然還有保存和保存的事件被觸發,在這些事件中可以知道哪個列已更新並據此執行操作?提前致謝。Laravel模型事件 - 對特定列更新執行操作

+1

可以掛接到' save()'方法並通過'getDirty()'方法檢查。 –

+0

如果您正在使用'timestamp'。那麼當你插入或更新記錄時,它會提及日期和時間。你會在那裏獲得更多的信息[https://laravel.com/docs/5.3/eloquent] – Manish

回答

0

由於@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. 
     } 
    }); 
}