记住足够的关键字来缓存分页查询结果

时间:2014-07-28 15:21:57

标签: php caching laravel

我有以下查询:

$posts = Post::where('category_id', '=', $category->id)
        ->where('isOk', '=', True)
        ->orderBy('submitTimestamp', 'desc')
        ->paginate(20);

如果我在查询中插入->remember(10),是否会成功执行所请求页面的缓存?

其次,如何(例如)插入新帖子时如何忘记所有缓存页面(类别)?

1 个答案:

答案 0 :(得分:0)

如果你需要刷新所有特定类型(例如所有帖子),你想要查看缓存标签而不是使用雄辩缓存。这将为您提供更多控制权,并允许您刷新缓存集的组。

来自Laravel文档:

// Setting tagged cached item in 'people' > 'authors' 
Cache::tags('people', 'authors')->put('John', $john, $minutes);

// Retrieving a cached item from a tag of 'people' > 'artists'
$anne = Cache::tags('people', 'authors')->get('John');

// Removing all items with a tag of 'people'
Cache::tags('people')->flush();

有关缓存标记的更多信息: http://laravel.com/docs/cache#cache-tags