2016-09-21 9 views
0

Laravelには特定のインスタンスで発生するモデルイベントがあり、作成、作成、保存、保存などのアクションを実行できます。どの列が更新されたかをどのようにして知ることができるのですか?ユーザーが更新して保存したイベントのような「保存済み」イベントが発生すると、これらのイベント内で更新された列を知り、前もって感謝します。Laravel Model Events - 特定の列の更新でアクションを実行

+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. 
     } 
    }); 
} 
関連する問題