Я считаю, что CakePHP очищает кеш следующим образом:
- Если есть элемент т.е.
articles_most_viewed.ctp
и вызывается из articles index.ctp
файла, тогда Cake очистит соответствующий элемент во время действия добавления, редактирования, удаления.
- Однако, если есть элемент т.е.
frontpage_lastest_articles.ctp
и он вызывается только в pages/display.ctp
файле (титульная страница), тогда CakePHP не очистит этот элемент, так как он не вызывается из затронутой / измененной модели / вида, в данном случае articles
модель / контроллер / вид.
Я не понимаю, как лучше подойти к этому вопросу, если есть лучший способ. Тем не менее, мое быстрое решение состоит в том, чтобы вызвать clearCache()
в моих admin_add.ctp
, admin_edit.ctp
и admin_delete.ctp
файлах как таковых:
...
function admin_add(){
...
if (!empty($this->data)) {
if ($this->Article->save($this->data)) {
// I call the following function to clear my entire Cache directory
// after this action is successfully processed
// ===========================================
clearCache();
// ===========================================
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
}
}
}
Возможно, есть лучший способ справиться с этим, но сейчас это мое решение. Я был бы рад узнать, есть ли лучшее / автоматическое решение.