" "缓存配置不存在



我正在更新一个项目从CakePHP 3.5到4.0。在我的一个模型中,我这样做:

public function afterSave(Event $event, EntityInterface $entity)
{
Cache::clear(false, 'dbResults');
}

在"old"我的项目版本与CakePHP 3.5,但失败与CakePHP 4.0错误

The "" cache configuration does not exist.#0 /var/www/repo/public/vendor/cakephp/cakephp/src/Cache/Cache.php(230): CakeCacheCache::_buildEngine('')

我不明白为什么代码试图搜索一个空字符串""的配置。

这是我的app.php配置文件的相关部分:

'Cache' => [
'default' => [
'className' => 'File',
'prefix' => 'headless_',
'path' => CACHE,
'url' => env('CACHE_DEFAULT_URL', null),
],
'_cake_core_' => [
'className' => 'File',
'prefix' => 'headless_cake_core_',
'path' => CACHE . 'persistent/',
'serialize' => true,
'duration' => '+2 minutes',
'url' => env('CACHE_CAKECORE_URL', null),
],
'_cake_model_' => [
'className' => 'File',
'prefix' => 'headless_cake_model_',
'path' => CACHE . 'models/',
'serialize' => true,
'duration' => '+2 minutes',
'url' => env('CACHE_CAKEMODEL_URL', null),
],
'permissions' => [
'className' => 'File',
'prefix' => 'headless_',
'path' => CACHE . 'permissions/',
'url' => env('CACHE_PERMISSIONS_URL', null),
],
'dbResults' => [
'className' => 'File',
'prefix' => 'headless_',
'path' => CACHE . 'dbResults/',
'url' => env('CACHE_PERMISSIONS_URL', null),
'duration' => '+1440 minutes',
],
'pages' => [
'className' => 'File',
'prefix' => 'page_',
'path' => CACHE . 'pages/',
'serialize' => true,
'duration' => '+320 minutes',
],
'page_contents' => [
'className' => 'File',
'prefix' => 'pc_',
'path' => CACHE . 'page_contents/',
'serialize' => true,
'duration' => '+320 minutes',
],
],

除此之外,在我的bootstrap.php文件中,我正在做

Cache::setConfig(Configure::consume('Cache'));

我不明白为什么当一切似乎都正确配置时,我得到这个错误。

请更新以下行

Cache::clear('dbResults');

在CakePHP 4中,Cache::clear()只接受一个参数,而不是CakePHP 3。他们去掉了$check参数。不幸的是,迁移指南似乎没有对此进行更新。

参考:https://book.cakephp.org/4/en/core-libraries/caching.html clearing-cached-data

相关内容

  • 没有找到相关文章

最新更新