2014-01-28 45 views
1

是否可以將remember(60)函數應用於Service::all()之類的東西?Laravel 4:記住()結果來自:: all()

這是一個很少改變的數據集。我已經嘗試了好變化,但沒有成功:

  • Service::all()->remember(60);
  • Service::all()->remember(60)->get();
  • (Service::all())->remember(60);

當然,我所知道的其他高速緩存方法可用,但我更喜歡這樣的清潔方法如果可用。

+1

一個奇怪的怪癖要記住(見我的回答如下),但現在回想起來我想這是有道理的;)...另外,我建議查看下面鏈接的文檔 – ErikTheDeveloper

回答

6

是的,你應該能夠簡單地交換兩個如

變化

Service::get()->remember(60); 

Service::remember(60)->get(); 

一個奇怪的怪癖,我同意,但之後我遇到了這樣的幾周前,我意識到我所要做的就是將remember($time_to_remember)放在查詢構建器的其餘部分之前,它就像一個魅力一樣。

爲了您詳閱樂趣:見Laravel 4 Query Builder Docs Here

/** 
    * Indicate that the query results should be cached. 
    * 
    * @param int $minutes 
    * @param string $key 
    * @return \Illuminate\Database\Query\Builder 
    */ 

public function remember($minutes, $key = null) 
{ 
    list($this->cacheMinutes, $this->cacheKey) = array($minutes, $key); 
    return $this; 
} 

L4 Docs - Queries