我正在使用文件缓存(CFileCache)来显示来自数据库表的简单消息。 第一次页面加载时它工作正常,但是当我重新加载页面时,它会产生一个错误: include(CTimestampBehavior.php)[function.include]:无法打开流:没有这样的文件或目录
并且此错误一直持续到TIME EXPIRATION,我在cache-> set()中设置并且下一页加载一次并再次出错,依此类推。
这是我处理缓存的方法:
public static function getLatest()
{
//see if it is in the cache, if so, just return it
if( ($cache=Yii::app()->cache)!==null)
{
$key='TrackStar.ProjectListing.SystemMessage';
if(($sysMessage=$cache->get($key))!==false)
return $sysMessage;
}
//The system message was either not found in the cache, or
//there is no cache component defined for the application
//retrieve the system message from the database
$sysMessage = SysMessage::model()->find(array(
'order'=>'t.update_time DESC',
));
if($sysMessage != null)
{
//a valid message was found. Store it in cache for future retrievals
if(isset($key))
//$cache->set($key,$sysMessage,300);
$cache->set($key, $sysMessage, 300, new CDbCacheDependency('SELECT MAX(update_time) FROM tbl_sys_message'));
return $sysMessage;
}
else
return null;
}
此行出现错误:
if(($sysMessage=$cache->get($key))!==false)
我是Yii的新手并且缓存并且不知道它。
更新: AR模型的行为方法:
public function behaviors()
{
return array(
'CTimestampBehavior' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time',
'updateAttribute' => 'update_time',
'setUpdateOnCreate' => true,
),
);
}
答案 0 :(得分:1)
看起来您的问题是:
无论如何,我建议尝试将“zii.behaviors.CTimestampBehavior”添加到main.php配置文件“import”部分。或者只是调用Yii :: import('zii.behaviors.CTimestampBehavior');在你的功能。希望这有效,你可以继续工作,同时在你有时间的时候潜入水中。
如果不是,您可以调查以上内容(至少来到这里的人会有更多信息可以使用)