2016-09-27 36 views
1

所以我在一個應用程序的工作,我需要使用任何由laravel使用的方法來緩存特定SELECT查詢,如findallselectgetLaravel捕獲/清除獲取/ select查詢事件

我知道有delete/update/save需要捕獲的事件。對於SELECT ish類型的查詢,有沒有類似的地方?某處,我看到一個可以使用newFromBuilder方法來捕獲獲取查詢:

public function newFromBuilder($attributes = array()) 
{ 
    $instance = parent::newFromBuilder($attributes); 

    $instance->fireModelEvent('loaded', true); 

    return $instance; 
} 

但我覺得上面只能用於查詢後實際運行,而我要重寫任何獲取查詢將它們添加到緩存中。

P.S我知道我可以在一些Laravel Pcakages的幫助下使用CacheTags,但問題是我沒有任何支持緩存標籤的驅動程序。

感謝您的幫助。

回答

0

好吧,我想想通了,我們可以覆蓋newBaseQueryBuilder

protected function newBaseQueryBuilder() 
{ 
    $conn = $this->getConnection(); 

    $grammar = $conn->getQueryGrammar(); 

    $builder = new Builder($conn, $grammar, $conn->getPostProcessor()); 

    // do our stuff with builder 

    return $builder; 
} 
+0

我只是想知道,這'Builder'使用。這是一個數據庫生成器或查詢生成器。 –