2015-03-13 114 views
1

cacheTags需要什麼使用條款?Laravel 5 cacheTags路徑

我:

$categories = FinanceTransactionCategory::select('id') 
      ->cacheTags(['cell-editors', 'categories']) 
      ->remember(60)->get(); 
    $jsConfig['filters'] = [ 
     'category' => $categories 
    ]; 

但它不工作,因爲:

Call to undefined method Illuminate\Database\Query\Builder::cacheTags() 

回答

3

這已在Laravel 5.刪除在這裏看到:

https://github.com/laravel/framework/issues/7259

你現在想直接使用Cache。這應有助於:

http://laravel.com/docs/5.0/cache#cache-tags

這裏有一個討論,可能是有用的:

https://laracasts.com/index.php/discuss/channels/general-discussion/laravel-5-remember-missing-from-query-builder

所以我相信這(未經測試)的代碼可以做你想做的:

$categories = Cache::tags(['cell-editors', 'categories'])->remember('categories', 60, function() { 
    return FinanceTransactionCategory::select('id')->get(); 
}); 

或者至少讓你朝着正確的方向前進!

+0

所以,現在如果我想緩存我的查詢我怎麼能​​做到這一點? – imperium2335 2015-03-13 17:31:01

+0

@ imperium2335剛剛更新了我的答案。這是一個單獨的步驟。 – jszobody 2015-03-13 17:32:05

+0

所以我只需要使用if語句來檢查它是否被緩存,如果不運行查詢並添加到緩存中? – imperium2335 2015-03-13 17:36:55