удалить CodeIgniter Query Cache - PullRequest
1 голос
/ 15 ноября 2011

Когда я делаю Query Caching в CodeIgniter с помощью $this->db->cache_on();, он создает папку и файл, папку с именем в controller+method, например show+73. но когда я удаляю строку с 73 идентификатором из таблицы и использую $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 ]

1 голос
/ 17 апреля 2017

удалять файлы наличными по

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

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

1 голос
/ 15 ноября 2011

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

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

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

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

...