2015-04-18 40 views
3

我有一種情況。我正在研究一些後端應用程序,我需要跟蹤對數據做了一些更改(數據庫CRUD操作)的最後一位用戶的ID。觸發器更新每個CRUD操作的字段laravel 5查詢生成器

我使用查詢生成這個(因爲一些問題,但我是跟着整體查詢生成器應用程序和雄辯僅用於用戶表)。這是一個網站,數據更重要,我們希望跟蹤最後一個更改數據庫的用戶,我有大約20個表格,其中數據正在改變。

現在需要的是我找的一些laravel觸發器在那裏我會在一個地方的程序代碼,它會爲每一個CRUD更新。所以,只要數據發生變化,這個觸發器就會更新用戶的ID。我不想在每個CRUD調用中編寫代碼,所以應該有一些觸發器可以幫助我們。

因爲我沒有使用侃侃而談。我知道我可以爲我的父模型使用parent :: boot方法,並可以使用此模型擴展其他模型。

那麼有沒有爲查詢生成任何其他方式。那麼有什麼可以幫助的。任何幫助傢伙?

我使用laravel 5

回答

0

Laravel確實爲DB變化觸發事件,我相信它的illuminate.query但我沒有用過這個,所以我可能是錯了。

+0

OK,我會檢查這個,因爲我雖然不是很確定。 –

0

L5火CRUD操作自動的事件。甚至你可以在acction不同時刻掛鉤,你在L5得到這個開箱:

  • 創建,創建
  • 更新,
  • 更新,
  • 節能,
  • 保存,
  • 刪除,
  • 刪除,
  • 恢復,
  • 恢復。

Model EventsModel Observers

對於聽的事件查詢生成器您可以在iluminte.query事件掛鉤。你

Event::listen('illuminate.query', function($query, $params, $time, $conn) 
{ 
    dd(array($query, $params, $time, $conn)); 
}); 

還可以聽這樣

DB::listen(function($squery, $params, $time) 
{ 
    dd(array($query, $params, $time)); 
}); 
+0

我只是在討論查詢生成器。沒有雄辯使用,對於模型,我們可以使用parent :: boot()來跟蹤上面列出的事件。 –

+0

我編輯我的反應,也許你可以在擦肩而過時實現'$ query' VAR一個正則表達式來檢測動作類型,INSERT,UPDATE,等等, –

+0

是的,但聽每一個電話,我怎麼會知道我正在插入或更新。因爲它監聽像select和all這樣的所有查詢,所以我需要在db變化時監聽哪個監聽。任何想法?。無論如何,謝謝你的幫助,雖然:) –