我正在尝试通过以下方法(方法1)将查询的所有记录缓存60分钟
Route::get('categoryList', function() {
return app\CategoryDetails::remember(60)->get();
});
我按照本教程link(提示5:缓存数据库查询)
但是我收到了这个错误:
调用未定义的方法
Illuminate\Database\Query\Builder::remember()
我不知道我在这里缺少什么。
BTW,我知道我可以通过以下方法缓存整个记录(方法2):
Route::get('categoryList', function() {
$category = Cache::remember('category', 10, function() {
return \App\CategoryDetails::all();
});
return $category;
});
这是完美的。
我很好奇为什么第一种方法不适合我。
答案 0 :(得分:12)
Laravel 5删除了此功能。您现在必须store the cache yourself:
Route::get('categoryList', function () {
return Cache::remember('category-details', 60, function () {
return App\CategoryDetails::all();
});
});
Eloquent不再提供
remember
方法来缓存查询。您现在负责使用Cache::remember
函数手动缓存查询。
答案 1 :(得分:1)
考虑使用名为rememberable
的laravel eloquent查询缓存库它做得很好。