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

时间:2009-07-26 04:09:21

标签: cakephp caching

即使documented,CakePHP会在模型更新时自动清除视图缓存,但事实并非如此。

  

重要的是要记住,如果修改了缓存视图中使用的模型,Cake将清除缓存视图。例如,如果缓存视图使用Post模型中的数据,并且对Post发出了INSERT,UPDATE或DELETE查询,则清除该视图的缓存,并在下一个请求中生成新内容。 / p>

即使手动调用建议的Cache::clear()方法也不会做任何事情。如何清除Cake中的视图缓存?

(从版本1.2.2.8120开始。查看存储库提交,即使.8256应该有这个问题。)

2 个答案:

答案 0 :(得分:3)

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

// model file:
function afterSave($created) {
    clearCache();
}

(请同时记录其他可用的解决方案,这是我能找到的唯一解决方案。)

答案 1 :(得分:0)

使用Cache :: clearCache(); 或删除您不想删除的文件

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