2016-08-02 17 views
2

私はEloquentを使用してDB内のレコードを編集するときはいつでも、保存の前後にこの行の値を記録できるようにしたいと思います。Laravel - 変更前後のEloquentログレコード

これまで

私のソリューション:

  • 私は雄弁を拡張し、親モデルクラスを持っている:Model.php
  • \アプリケーション\モデルは、その後、すべて私の他のモデルがこのModel.phpを拡張し、このファイル内ので、私は雄弁なsave()メソッドをオーバーライドしています。

ところで、保存メソッドが呼び出され、雄弁なビルダーオブジェクトは新しい値を持ち、古いものは上書きされています。

これを行う方法に関するアイデアはありますか? https://github.com/VentureCraft/などの詳細は、

+1

使用既存のツール改訂版またはhttps://github.com/jarektkaczyk/revisionable –

答えて

1

あなたは、このためのモデルイベントを使用することができ、savingupdatingdeletingのような多くのイベントがある... 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; 
     } 
    ); 
    } 
} 
+0

甘い、いいね!しかし、どのように私はこれのための生のSQLを取得するのですか?あなたは何か考えていますか? – Alucard

+0

実行されたクエリは何ですか? – Maraboc

+0

Logginの目的 – Alucard