Кэширование базы данных CodeIgniter кэширует флэш-данные сессий - заставляя их сохраняться слишком долго - PullRequest
1 голос
/ 14 февраля 2012

Я создаю приложение, которое использует Flashdata для отображения сообщений пользователю после определенных действий - например, «Элемент успешно удален» и т. Д. Я также использую кэширование запросов базы данных CodeIgniter для того, чтобы кэшировать определенные запросы, пока я не аннулирую их.

После редактирования элемента я установил в сообщении Flashdata сообщение «Элемент отредактирован». Затем я redirect() перехожу к представлению «Все элементы», в котором отображается сообщение Flashdata. Однако это сообщение Flashdata сохраняется даже после перезагрузки страницы . Единственный способ заставить его исчезнуть - это очистить каталог application/cache.

Есть ли какой-нибудь разумный способ переопределить механизм кэширования, чтобы не кэшировать Flashdata? Я нашел это - http://codeigniter.com/wiki/No_Flash_Cache - но, похоже, это очень старое решение для CI 1.7. В любом случае, я попробовал, но по какой-то причине CI не хотел переопределять приватную функцию _write_cache() - она ​​все равно прекрасно переопределяла бы все остальное ... (Правка: теперь это осознали (если кто-то не скажет мне иначе) ), который влияет только на кэширование вывода, но не на кэширование базы данных)

Заранее спасибо!

1 Ответ

1 голос
/ 29 февраля 2012

Вы можете изменить механизм кэширования codeigniter, используя ловушку cache_override.Следующие строки были скопированы из их документации

cache_override: Позволяет вам вызывать собственную функцию вместо функции _display_cache () в выходном классе.Это позволяет вам использовать собственный механизм отображения кэша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...