带有控制器操作调用的CakePHP缓存帮助器

带有控制器操作调用的CakePHP缓存帮助器,cakephp,caching,Cakephp,Caching,我已正确启用缓存帮助器。它适用于静态和动态页面。但我的主页有一些小部件,这些小部件的数据是从控制器设置的,这就造成了问题。让我解释一下 整个网站是基于位置的。因此,所有查询都将位置作为主要搜索条件。具有分页功能的索引方法对于任何位置切换都非常有效。但是我的主页有一个地图小部件,它使用了基于位置的数据,工作不正常。当缓存为空时,它会为位置A创建缓存,但当我切换到位置B时,它仍会显示位置A的数据。我检查它是否跳过设置数据的控制器 我的问题是如何使控制器操作每次都被调用,否则我的数据就会出错,不是吗?

我已正确启用缓存帮助器。它适用于静态和动态页面。但我的主页有一些小部件,这些小部件的数据是从控制器设置的,这就造成了问题。让我解释一下

整个网站是基于位置的。因此,所有查询都将位置作为主要搜索条件。具有分页功能的索引方法对于任何位置切换都非常有效。但是我的主页有一个地图小部件,它使用了基于位置的数据,工作不正常。当缓存为空时,它会为位置A创建缓存,但当我切换到位置B时,它仍会显示位置A的数据。我检查它是否跳过设置数据的控制器


我的问题是如何使控制器操作每次都被调用,否则我的数据就会出错,不是吗?有什么想法吗?

对于这样一个页面,最好不要使用缓存,您也可以在变量$cacheAction中为该特定操作设置回调为true,因为get parameters cache非常有效,但是对于post parameter cache不起作用,因为第一次通过post发送的参数只会被处理。不使用缓存不是一个选项。我在$cacheAction中使用了callbacks=>true,但它仍然不能解决我的问题。为了测试,我在控制器操作中打印了日期'Y-m-d H:I:s',但我只在创建缓存之前第一次看到它,但在创建缓存时,我再也看不到日期输出。知道吗?Cache helper只缓存控制器动作的视图。它不会缓存控制器的任何变量,因为它们不是视图文件的一部分。只有get参数将被单独缓存,不使用缓存是使用post方法表单的页面的唯一选项。