var_dump($sql);
$dataToExcel = Yii::app()->cache->get('dataToExcel');
if($dataToExcel === false)
{
$dataToExcel = call_logs::model()->findAll($criteria);
Yii::app()->cache->set('dataToExcel', $dataToExcel, 600, new CDbCacheDependency($sql));
var_dump('false');
}
else
{
var_dump('true');
}
我打印出sql语句,变化了(同时也使得它引起的查询结果也发生了变化),说明db依赖的条件发生了变化了,这时应该重新生成数据,而不是从缓存中获取;
那么get()方法返回的应该是false,可是在这里测试时,发现sql语句变化了,可还是打印true,也即是说是从缓存中取得了数据,这样缓存依赖没有起到应有的作用?
我希望他们在导出excel时,去用缓存的数据,而不是重新查询,可是用户有可能不需要前一个查询的数据而是后面的查询数据,这是过期时间已经不能满足需要了,否则导出的是前一个查询的数据,所以我要加上db依赖,可现在db依赖没有效果了