Laravel缓存不存储数据库结果数组

时间:2018-12-06 18:03:56

标签: php laravel laravel-5

我正在尝试按如下所示缓存数据库查询(Laravel 5.7):

Cache::remember('footer_pages', 180, function () {
    DB::table('pages')->select('id', 'title')->where(array('status' => 'Published', 'menu_position' => 'Footer'))->orderBy('sort', 'ASC')->get();
});

但是缓存为空。请帮助我找出我的错误。

1 个答案:

答案 0 :(得分:2)

如果提供了回调,则记住函数会将回调的结果存储在缓存中。

这意味着您需要使回调返回要存储的结果:

Cache::remember('footer_pages', 180, function () {
    return DB::table('pages')->select('id', 'title')->where(array('status' => 'Published', 'menu_position' => 'Footer'))->orderBy('sort', 'ASC')->get();
});