Удалить 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');
за каждое редактирование или удаление в БД