2015-12-13 121 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