当我通过$this->db->cache_on();
在CodeIgniter中进行查询缓存时,它将创建文件夹和文件,在controller+method
中命名的文件夹,例如show+73
。
但是当我从表中删除具有73个id的行并使用$this->db->cache_delete('show', $id);
删除缓存时,它将无效。当我调用show/73
时它存在并返回响应
我该如何解决?
我的代码:
返回结果(在模型中)
public function temp($id)
{
$this->db->cache_on();
$this->db->where('id',$id);
$query = $this->db->get('system_store_table');
return $query->result();
}
从表中删除行和缓存。 (它会成功删除表中的行,但不能删除它的缓存)
public function delete($id = 0)
{
$this->db->flush_cache();
$this->db->where('id',$id);
$this->db->delete('system_store_table');
$this->db->cache_delete('show', $id);
if ($this->db->affected_rows() != 0)
return TRUE;
return FALSE;
}
答案 0 :(得分:1)
明显,但值得排除 - 你检查过文件权限吗?此外,它基于控制器/方法进行缓存,因此我假设您正在进行一些重新路由,因为这不是有效的PHP代码:
class Show extends CI_Controller {
public function 73() {
}
}
您是否尝试过原始版本和重新播放的第1版和第1版第二个URI段?
除了手动检查file_exists(FCPATH。' / path / to / cache / show / 73')和取消链接()之外,我已经得到了所有这些。 ...
答案 1 :(得分:1)
通过
删除现金文件$this->db->cache_delete('show', '73');
对于db
中的每次编辑或删除