我尝试使用以下方式删除特定的缓存数据:
Cache::forget('key');
也尝试过
Cache::pull('key');
但是缓存仍然存在于数据库中
注意:我正在使用数据库缓存和 Laravel 5.1.7
cache
键,而Laravel通常会添加另一个prefix
,因此它们永远不会匹配。记录一下:如果你在使用缓存标签,那么forget
方法将不起作用。这是我解决问题的方法:
$cache_key = "MY_CACHE_KEY";
$cache_tags = ["MY_CACHE_TAG"]; //SOMETIMES I USE MULTIPLE TAGS
if (\Cache::tags($cache_tags)->has($cache_key)) {
\Cache::tags($cache_tags)->forget($cache_key);
$results = "CACHE item " . $cache_key . " forgotten";
} else {
$results = "Key " . $cache_key . " IS NOT CACHED";
}
如果有人需要,我的问题是由于文件权限引起的。因此,您可以尝试在项目根目录中使用以下命令 chmod -R 755 .
。但是,我使用了chmod -R 777 .
,但这不推荐。
Cache::has('key')
进行检查。 - theGreenCabbage