1

当我在 CodeIgniter 中进行查询缓存时,$this->db->cache_on();它将创建文件夹和文件,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;
}
4

2 回答 2

1

很明显,但值得排除——你检查过文件权限吗?此外,它基于控制器/方法缓存,所以我假设你正在做一些重新路由,因为这不是有效的 php 代码:

class Show extends CI_Controller {
    public function 73() {
    }
}

您是否尝试过原始和重新路由的第一个和第二个 URI 段?

这就是我所拥有的,除了手动检查 file_exists(FCPATH.'/path/to/cache/show/73') 和 unlink()'ing...

于 2011-11-15T13:53:38.370 回答
1

删除现金文件

$this->db->cache_delete('show', '73');

对于 db 中的每次编辑或删除

于 2017-04-17T13:07:10.573 回答