Php 强制刷新后显示的更新数据(Yii2)
我正在使用Yi2 basic,当我更新表单时,数据库中的数据更新成功,但即使在刷新链接后,更新数据也不会显示在表单中,但当我硬刷新或删除缓存时,它会在表单中显示更新的数据,可能会出现什么问题,因为它在几天前工作正常,但突然它开始显示这种行为,即使其他应用程序在同一个服务器上工作正常,我需要帮助。 是yii2配置问题还是服务器配置问题? 在db.php中,我有这两个值Php 强制刷新后显示的更新数据(Yii2),php,firefox,yii2,ubuntu-18.04,Php,Firefox,Yii2,Ubuntu 18.04,我正在使用Yi2 basic,当我更新表单时,数据库中的数据更新成功,但即使在刷新链接后,更新数据也不会显示在表单中,但当我硬刷新或删除缓存时,它会在表单中显示更新的数据,可能会出现什么问题,因为它在几天前工作正常,但突然它开始显示这种行为,即使其他应用程序在同一个服务器上工作正常,我需要帮助。 是yii2配置问题还是服务器配置问题? 在db.php中,我有这两个值 'enableSchemaCache' => true, 'enableQueryCache' => false,
'enableSchemaCache' => true,
'enableQueryCache' => false,
我尝试将架构缓存启用为false,但没有成功。似乎启用了某种(数据)缓存。 你可以:
find()
,findOne()
,findAll()
。
检查它们是否已被代码覆盖或扩展find()
方法或其任何变体,则还可以扩展afterSave()
方法,以便在对数据库执行更新后刷新缓存。
下面是我在测试环境中执行更新后用来刷新缓存的内容
public function afterSave($insert, $changedAttributes)
{
parent::afterSave($insert, $changedAttributes);
//Clears cache if this is an update
if( !$insert)
{
if(method_exists ($this, 'flushCache'))
{
$this->flushCache();
}
}
}
public function flushCache()
{
Yii::$app->cache->delete($this->getCacheKey());
}
protected function getCacheKey()
{
return self::getCacheKeyPrefix(). $this->getPrimaryKey() ;
}
public static function getCacheKeyPrefix()
{
return self::CACHE_PREFIX . self::getTableSchema()->name;
}
解释
谢谢,HTH。你确定没有任何其他缓存,如页面缓存或片段缓存吗?@masoudvatandoost代码在svn上,这是一个问题,可能是有人更新了缓存片段等,我尝试过,但找不到任何Cluety来查找var_dump and die的问题,或者在每个步骤上使用Yi2记录器。缓存可能位于模型上、视图中,甚至控制器中的某个行为中。对特定类别使用Yii::info(),然后在调试器上检查它们。