2015-12-13 52 views
0

我正在使用緩存數據庫查詢。我的代碼如下。緩存數據庫查詢 - 記住

$Categories = \App\Models\Skill\Category_Model::paginate(1)->remember(60); 

然後我得到了下面的運行時錯誤。

方法記住不存在。

我錯過了什麼嗎?

+0

不要認爲「記住」是Laravel 5的一部分。[此](https://github.com/dwightwatson/rememberable)似乎支持它並可能解決您的問題。 –

+0

你從哪裏找到暗示調用記住查詢結果的代碼? –

+0

我不確定這是否是正確的數據庫查詢緩存方式。在Laravel 5.1中緩存數據庫查詢的最佳方式是什麼? – Pankaj

回答

1

remember曾經是4.2之前的雄辯的一部分,但現在新的Laravel是緩存本身的一部分。

當我從Laravel文檔引用在此link

雄辯緩存

雄辯不再提供記得緩存查詢方法。 您現在負責使用 Cache::remember函數手動緩存查詢。有關緩存的更多信息,請參閱 full documentation

回答你的問題緩存數據庫查詢在Laravel 5.1的最佳方式:

$value = Cache::remember('Categories', 60, function() { 
    return \App\Models\Skill\Category_Model::paginate(1); 
}); 

如果該項目不存在於緩存中,則關閉傳遞給remember方法將被執行,其結果將被放置在緩存中。

您還可以結合rememberforever方法,如你使用4.2做雄辯本身的一部分內容:

$value = Cache::rememberForever('Categories', function() { 
    return \App\Models\Skill\Category_Model::paginate(1); 
}); 

由於您使用分頁你可能想後綴添加到您的緩存鍵像Categories_1