2016-04-04 16 views

答えて

1

あなたは(Laravelイベントと混同しないでください)Eloquent Eventsを使用する必要があります。

出発点は同様なものになるだろうけれどもあなたは、これはより多くの再利用可能と単一責任を作るためにオブザーバーに見たいと思う
public function boot() 
{ 
    Article::updated(function ($user) { 
     // do some stuff here 
    }); 
} 
+0

確かにどのようにカテゴリが更新されたときにのみ起動するようにカスタム雄弁なイベントを作成します。 –

+0

あなたは 'Category'モデルを持っている場合は、単に'カテゴリー::更新を(使用.... ' –

+0

http://stackoverflow.com/a/36406114/4865248 –

0

public function boot() 
{ 
    self::updated(function ($model) { 
     if (array_key_exists('category_id', $model->getDirty())) { 
      // Log things here 
     } 
    }); 
} 

Laravelが含まれている「汚い」配列を移入します変更されたフィールド。これを使用して特定のフィールドが変更されたときを検出できます。

また、持っている:

$model->getOriginal('field_name') // for this field value (originally) 
$model->getOriginal() // for all original field values 
+0

これはありがとうございます。 –