即使documented,CakePHP会在模型更新时自动清除视图缓存,但事实并非如此。
重要的是要记住,如果修改了缓存视图中使用的模型,Cake将清除缓存视图。例如,如果缓存视图使用Post模型中的数据,并且对Post发出了INSERT,UPDATE或DELETE查询,则清除该视图的缓存,并在下一个请求中生成新内容。 / p>
即使手动调用建议的Cache::clear()
方法也不会做任何事情。如何清除Cake中的视图缓存?
(从版本1.2.2.8120
开始。查看存储库提交,即使.8256应该有这个问题。)
答案 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');
}