我正在尝试缓存一些东西。在我的core.php配置文件中,我有这个:
//short
Cache::config('short', array(
'engine' => 'File',
'duration' => '+1 hours',
'path' => CACHE,
'prefix' => 'cake_short_'
));
// long
Cache::config('long', array(
'engine' => 'File',
'duration' => '+1 week',
'probability' => 100,
'path' => CACHE . 'long' . DS,
));
在我的控制器中,我有这个:
$xmlpublist = Cache::read('xmlpublist');
var_dump($xmlpublist);
//if cache is still set, return cache
if($xmlpublist !== false) {
die('cache A');
return $xmlpublist;
}
Cache::write('xmlpublist', "test", 'short');
die('cache C');
return $xml;
我可以看到生成的文件 - / path / to / cache / cake_short_xmlpublist
但是当我Cache::read('xmlpublist')
时,我总是得到bool(false)
。我确保我对缓存目录都有读写权限。
期望: 从缓存中获取值。
结果: 我得到了布尔(假)
我哪里可能出错了?
任何回复赞赏;)
谢谢, w ^
答案 0 :(得分:5)
调用Cache::read()
时,您需要包含要读取的缓存配置,因此在您的情况下'short'
。如果没有这个额外的参数,你将从“默认”配置中读取,这可能没有您正在寻找的密钥。