【发布时间】:2011-12-07 14:20:41
【问题描述】:
我正在使用 CodeIgniter。
假设我有一个用于当前用户的模型和一个用于用户列表的模型。在用户列表的模型中,我缓存了 WHERE 语句,因为如果我不这样做,我必须在使用 $this->db->count_all_results 之后再次应用它们(该函数重置活动记录函数)。我当然也需要那些用于 $this->db->get('users')。
userlist 模型中过滤用户的函数如下所示:
public function onlyWomen()
{
$this->db->start_cache();
$this->db->where('gender', '1');
$this->db->stop_cache();
}
问题是我也在为当前用户使用模型。我怀疑我在 userlist 模型中设置的缓存也复制到当前用户模型(我同时使用两者,所以从当前用户模型开始时我无法刷新缓存)。我认为活动记录缓存应该保留在它被调用的对象中。
我该如何规避或解决这个问题?
(我的英语还不错,但是结合这些复杂的东西,我可能还没有完全理解对象/类,希望你能理解我的问题^^)
【问题讨论】:
标签: php oop codeigniter caching model