缓存问题

不知道,我这样的缓存写法有没有问题

$models=Yii::app()->cache->get(‘uniqueId’);

if($models===false) {

$models=Model()->findAll();


Yii::app()->cache->set('uniqueId', $models, 1800);

}

现在的问题是

当我使用$models里behavior里,就出现问题了,

foreach($models as $model) {

$model->xxx();//这个xxx()方法来自某一个behavior。

}

这里会提示找不到behavior。不用缓存是正常的

最好避免保存对象到缓存里,尤其是象AR这样复杂的对象,因为序列化时会把所有的深层对象(例如CDbConnection, CWebApplication)全部保存起来,这样反序列化就会造成很多重复的对象。

你可以考虑对model的attributes进行缓存。

谢谢