CakePhp包含模型缓存

时间:2012-02-29 13:23:04

标签: php cakephp caching memcached cakephp-2.0

我正在使用cakephp。在某些查询中,我使用了以下类型的查找:

$this->Photo->Behaviors->attach('Containable', array('autoFields' => true));

这是我在find中使用的Contain数组:

'contain'=>array(
    'User'=>array('fields'=>array('User.Name','User.Username')),
    'Like' => array('User'=>array('fields'=>'Name'),
                    'order'=>'Timestamp DESC'
                  )),
'recursive' => 2, 

问题是每次我想要喜欢照片的用户名。 Cakephp执行此查询。

For example: SELECT `User`.`Name` FROM `Users` AS `User` WHERE `User`.`id` = 2175

如果我在一张照片上有300个喜欢,我将为User.Name创建另外300个查询。所以,我想缓存这种请求。我已经在我的服务器中正确安装了memcache,它正常工作。但我无法找到一种方法来缓存蛋糕使用可包含行为进行的查询。

有人有这个问题吗?

由于 -G。

2 个答案:

答案 0 :(得分:0)

为什么不使用cakephp的counterCache功能呢?

在cakephp书中有很多关于缓存查询的文档,不仅仅是在我的缓存中,还有许多其他方法。查看CakeCache类。

答案 1 :(得分:0)

这个主题有很多方法。 如果只是关于belongsTo关系,它归结为使用bindModel()手动连接表。

这是一个很好的行为:http://planetcakephp.org/aggregator/items/891-linkable-behavior-taking-it-easy-in-your-db

它会照顾好自己。