为什么Cache::clear()不清除我的(视图)缓存?(CakePHP)

yx2lnoni  于 2022-11-11  发布在  PHP
关注(0)|答案(2)|浏览(192)

即使是documented,CakePHP也会在模型更新时自动清除视图缓存,但它不会。
请务必记住,如果缓存视图中使用的模型被修改,Cake将清除缓存视图。例如,如果缓存视图使用Post模型中的数据,并且对Post进行了INSERT、UPDATE或DELETE查询,则该视图的缓存将被清除,并在下一次请求时生成新内容。
即使手动调用建议的Cache::clear()方法也没有任何作用。我如何清除Cake中的视图缓存?

  • (从1.2.2.8120版本开始。查看存储库提交,即使是.8256也应该存在此问题。)*
o2g1uqev

o2g1uqev1#

使用clearCache(),可能会在模型afterSave回调中自动使用:

// model file:
function afterSave($created) {
    clearCache();
}
  • (还请记录其他可用的解决方案,这是我唯一能找到的解决方案。)*
uxhixvfz

uxhixvfz2#

使用Cache::clearCache();,或使用Cache::delete();仅删除不再需要的文件。

function afterSave($created) {
    parent::afterSave(false);
    Cache::delete('left_menu_eng');
}

相关问题