You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel如何带标签检查缓存键是否存在?

关于Laravel标签缓存的存在性检查问题

你的猜测写法是完全正确的:

if(Cache::tags(['mytag'])->has('topmenu')) {
    // ...
}

为什么这个写法有效?

Laravel的标签缓存机制会给绑定了标签的缓存项打上专属标识,当你通过tags(['mytag'])指定标签上下文后,后续的has方法会只检查属于该标签组的缓存键是否存在。这意味着这个检查和全局的Cache::has('topmenu')是相互隔离的——如果有一个未绑定标签的topmenu缓存,不会影响这个带标签的检查结果。

标签不存在时的表现

如果指定的标签(比如mytag)从未被任何缓存项使用过,调用Cache::tags(['mytag'])->has('topmenu')会直接返回false,不会抛出异常或产生错误。这种情况下的返回结果,和“标签存在但该缓存键不存在”的情况完全一致。

内容的提问来源于stack exchange,提问作者poashoas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:04:53