Yii缓存错误:试图获取非对象的属性

时间:2013-05-28 08:03:57

标签: php caching yii memcached

我正在使用Yii PHP Framework和MemCache进行缓存,当我第一次打开非缓存页面时,我看到了这个错误:

实时错误错误注销(linux):

Fatal error: Call to a member function getColumnNames() on a non-object in /home/cineshell/cineklik/framework/db/ar/CActiveFinder.php on line 385

本地错误日志(窗口):

Trying to get property of non-object
C:\xampp\htdocs\appfolder\framework\yiilite.php(7125)
...
7123     public function getTableSchema()
7124     {
7125         return $this->getMetaData()->tableSchema;
7126     }

配置/主

    'cache'=> array(
        'class'=> 'CMemCache',
          'servers'=>array(
            array('host'=>'localhost', 'port'=>11211, 'weight'=>100),
          ),
    ),

缓存示例:

$data = Yii::app()->cache->get( 'casheID'  );
if($data===false)
{
   $data = dataprovider, query... etc
}
echo $data;

那么,这里有什么错误?,可能是服务器设置中的东西?

有人告诉我使用if isset,但我不明白!

1 个答案:

答案 0 :(得分:1)

对于CActiveDataProvider,请遵循本指南。 http://www.yiiframework.com/wiki/233/using-cache-in-cactivedataprovider/

或者,您可以根据需要使用片段缓存gridview或局部视图。我也开始讨论它,我发现查询缓存是唯一可行的解​​决方案。