我正在使用缓存数据库查询。我的代码如下。
$Categories = \App\Models\Skill\Category_Model::paginate(1)->remember(60);
然后我得到了以下运行时错误。
方法记住不存在。
我错过了什么吗?
答案 0 :(得分:2)
remember
曾经在4.2之前成为Eloquent的一部分,但现在新的Laravel是缓存本身的一部分。
正如我引用此link中的Laravel文档:
雄辩的缓存
Eloquent不再提供用于缓存查询的记住方法。 您现在负责使用以下方法手动缓存查询
Cache::remember
功能。有关缓存的更多信息,请参阅 full documentation
回答您的问题在Laravel 5.1中缓存数据库查询的最佳方法:
$value = Cache::remember('Categories', 60, function() {
return \App\Models\Skill\Category_Model::paginate(1);
});
如果缓存中不存在该项,则将执行传递给remember
方法的 Closure ,并将其结果放在缓存中。
你也可以将remember
和forever
方法结合起来,就像你以前用4.2做的那样,作为雄辩本身的一部分:
$value = Cache::rememberForever('Categories', function() {
return \App\Models\Skill\Category_Model::paginate(1);
});
由于您正在使用分页,因此您可能希望将postfix添加到您的缓存键,例如Categories_1