0
我有一個SettingsSiteTable對象具有以下方法來讀取數據庫中的設置並將結果存儲在緩存中。CakePHP 3:不確定爲什麼Cache :: read()不工作
// GET ALL CONFIG SETTINGS
function getConfigs(){
if(($settings_site = Cache::read($this->key)) === false) {
$settings_site = $this->find('list', [
'keyField' => 'key',
'valueField' => 'value'
])->toArray();
Cache::write($this->key, $settings_site, 'settings');
}
return $settings_site;
} // END GET CONFIGS FUNCTION
$ this-> key是'SettingsSite',似乎沒有問題。我還添加了Cake \ Cache \ Cache到表格對象文件。在app.php文件
我的緩存配置如下:
'Cache' => [
'default' => [
'className' => 'File',
'path' => CACHE,
],
'settings' => [
'className' => 'File',
'duration' => '+6 hours',
'path' => CACHE . 'settings/',
],
'_cake_core_' => [
// ...
],
'_cake_model_' => [
// ...
],
],
緩存似乎成功保存。我能看到位於TMP /緩存/設置/ settings_site(不知道文件擴展名是什麼)
但是緩存文件,如果我更改了數據庫中的數據並刷新頁面,則更新信息顯示意味着它不正確地從緩存中讀取數據,並重新查詢結果。
我在做什麼錯?我直接從3.X Cookbook: Writing to a Cache
所以我認爲它與面對的是我已經執行查詢後緩存結果集......我想我正在做的事情。除了現在我得到一個錯誤消息「你不能序列化或反序列化PDO實例」......仍然需要幫助 – bowlerae
現在好了我認爲這與我沒有在Cache :: read中指定配置有關()所以它使用默認,但我正在寫'設置' – bowlerae