2010-07-22 116 views
1

我在我的控制下:蛋糕PHP缓存帮手,CACHEACTION

var $cacheAction = array(
      'view/' => 432000, 
      'pricelist/'=>'100000', 
      'latest/' => '100000'); 

这就是缓存的意见5天。我还在core.php中启用了缓存,并在我的控制器中包含了缓存助手。

缓存文件在tmp/cache/views /中正确创建,但它们似乎不会持续5天。如果我做了一个文件列表,所有文件都在过去的3-4分钟内创建完成。

我在做什么错?我是否需要另一种缓存动作语法?

谢谢

回答

3

您的操作使用的模型是否需要更改?从Cookbook

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

+0

否此页面的模型未更新。但! 该页面显示登录用户可以添加到他/她的购物篮中的图片。另一种模型的BasketImages得到更新。 除了这个视图还包含一个读取SESSION变量的div,并说明用户在他的篮子中有多少图像。 这是原因吗? – gong 2010-07-31 18:51:05

+0

所以我测试过,无论何时将图像添加到篮子中,缓存都会被清除。 有没有办法来防止这种情况? – gong 2010-08-03 11:06:52

+0

您可能可以在动态部分上使用ajax,以便篮子来自与您正在尝试缓存的视图不同的视图。 – 2010-08-03 15:06:47

0

我的车型有:

事件的hasMany图片

属于关联事件 的hasMany BasketImages

BasketImages 属于关联图像0​​BEL ongsTo购物篮

所以我缓存了页面events/view/id。这种观点认为,我有:

<?php if (($c=count($basketImages))>0) echo $c; ?> 

,然后还有一些照片和一个按钮,这使得一个AJAX调用,比如:/篮/添加/图像标识

在篮/添加,如果用户没有按”没有一个篮子可以创建一个篮子,它还会创建一个带有当前图像ID的BasketImage记录。

所以我的问题是这样做我的网页秋天在类别:

要记住的是,如果缓存的视图中使用的模型被修改的蛋糕将清除缓存的观点是很重要的。 (食谱)

添加一个篮子和basketImage是否使事件/视图缓存过期?我可以使用:

<cake:nocache> <?php if (($c=count($basketImages))>0) echo $c;?><cake:nocache> 
+0

这应该已经添加到您的问题,而不是发布为答案。 – 2011-02-24 21:30:12