Cake PHP Cache助手,cacheAction

时间:2010-07-22 06:43:27

标签: cakephp caching

我的控制器中有以下内容:

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

即将视图缓存5天。我还在core.php中启用了缓存,并在我的控制器中包含了缓存助手。

缓存文件在tmp / cache / views /中正确创建,但它们似乎不会持续5天。如果我在文件列表中列出了最近3-4分钟内创建的所有文件。

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

感谢

2 个答案:

答案 0 :(得分:3)

您的行为是否使用经常更改的模型?来自Cookbook

  

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

答案 1 :(得分:0)

我的模特是:

事件 hasMany 图片

购物篮属于事件         hasMany BasketImages

BasketImages belongsTo 图片               belongsTo 购物篮

所以我缓存了页面events / view / id。在这个视图中我有:

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

然后有一些照片和按钮使 ajax 调用如:/ baskets / add / imageID

在购物篮/添加中,如果用户没有购物篮,则会创建一个购物篮,并且还会创建一个包含当前imageID的BasketImage记录。

所以我的问题是我的页面属于以下类别:

  

重要的是要记住,如果修改了缓存视图中使用的模型,Cake将清除缓存视图。 (食谱)

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

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