Удалить CodeIgniter Query Cache

Когда я делаю Query Caching в 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;
}

2 ответа

Очевидно, но стоит исключить - вы проверили права доступа к файлам? Кроме того, он кешируется в зависимости от контроллера / метода, поэтому я предполагаю, что вы делаете некоторую переадресацию, так как это недопустимый код php:

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

Вы пробовали как исходный, так и перенаправленный 1-й и 2-й сегменты URI?

Это все, что у меня есть, кроме ручной проверки file_exists(FCPATH.'/ Path/to/cache/show/73') и unlink()'ing...

Удалить кассовые файлы

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

за каждое редактирование или удаление в БД

Другие вопросы по тегам