【问题标题】:CakePhp Contain Model CacheCakePhp 包含模型缓存
【发布时间】:2012-02-29 13:23:04
【问题描述】:

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

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

这是我在查找中使用的包含数组:

'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,它工作正常。但是我找不到一种方法来缓存 cake 使用 Containable Behaviors 进行的查询。

有人遇到过这个问题吗?

谢谢 G.

【问题讨论】:

    标签: php cakephp caching memcached cakephp-2.0


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      它会自己处理。

      【讨论】:

      • 良好行为.. 但在我的情况下,加入是一个问题。我的表增长得非常快,连接开始变得非常沉重。
      • 然后使用 Scott Harwell 的方法:book.cakephp.org/2.0/en/models/…
      猜你喜欢
      • 2011-01-19
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多