我正在使用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
,但我不明白!
答案 0 :(得分:1)
对于CActiveDataProvider,请遵循本指南。 http://www.yiiframework.com/wiki/233/using-cache-in-cactivedataprovider/
或者,您可以根据需要使用片段缓存gridview或局部视图。我也开始讨论它,我发现查询缓存是唯一可行的解决方案。