我试图使用缓存组,但examples in the documentation对我来说不是很清楚。
这是我的 bootstrap :
Cache::config('default', array(
'engine' => $engine,
'duration' => $duration,
'prefix' => $prefix,
'groups' => array('page', 'photo', 'post')
));
我们假设我拥有模型,包括文章,页面,照片等,并在各种操作中将数据写入缓存。
例如, PagesController :
public function index() {
$pages = Cache::read($cache = 'pages_index');
if(empty($pages)) {
$pages = $this->Page->find('all');
Cache::write($cache, $pages);
}
$this->set(array(
'pages' => $pages
));
}
这会创建文件
tmp/cache/pages_index
缓存工作正常,下一个请求将使用缓存。 其他操作会为 Page 模型页面写入数据。
再次 PagesController :
public function view($slug = NULL) {
$page = Cache::read($cache = sprintf('pages_view_%s', $slug));
//If the data are not available from the cache
if(empty($page)) {
$page = $this->Page->find('first', array(
'conditions' => array('slug' => $slug)
));
if(empty($page))
throw new NotFoundException(__('Invalid page'));
Cache::write($cache, $page);
}
$this->set(array(
'page' => $page
));
}
这也可以正常使用。
现在我希望编辑一个页面,从缓存中删除有关页面的所有数据。其他模特(帖子,照片等)也应如此。
所以,在我的 Page 模型中:
public function afterSave($created, $options = array()) {
Cache::clearGroup('pages');
}
但这不起作用:没有文件从缓存中删除。
我在哪里做错了?我不明白的是? 谢谢!
答案 0 :(得分:0)
因为您的网上论坛名称是“页面”,而不是“页面”。