Yii部署的时候产生问题

我在本地(windows系统)开发的程序,运行正常,放到服务器上(Linux)后总提示如下错误,服务器上的yii依赖模块都已开启了,现在查不出哪里出的问题,而且出错的地方主要都是调用zii.widgets.grid.CGridView这个列表视图时


PHP Error


Invalid argument supplied for foreach()


/var/www/framework/web/CActiveDataProvider.php(159)


147         $data=$this->model->findAll($criteria);

148         $this->model->setDbCriteria($baseCriteria);  // restore original criteria

149         return $data;

150     }

151 

152     /**

153      * Fetches the data item keys from the persistent data storage.

154      * @return array list of data item keys.

155      */

156     protected function fetchKeys()

157     {

158         $keys=array();

159         foreach($this->getData() as $i=>$data)

160         {

161             $key=$this->keyAttribute===null ? $data->getPrimaryKey() : $data->{$this->keyAttribute};

162             $keys[$i]=is_array($key) ? implode(',',$key) : $key;

163         }

164         return $keys;

165     }

166 

167     /**

168      * Calculates the total number of data items.

169      * @return integer the total number of data items.

170      */

171     protected function calculateTotalItemCount()




貌似找不到主键,linux上,mysql的表字段及表名是区分大小写的,请检查表及模型,过用gii重新生成一下模型。

我的所有表名、字段都是小写的,而且开发环境的数据库也是架在ubuntu上的,在部署到服务器上时,用mysqldump做了一个数据库的备份,用备份初始化的服务器的数据库,还有在服务器上的CListView视图都OK,不报错,只有CGridView报错。

问一下$this->getData()调用的是呢个类的方法,我在CDataProvider.php的getData中没补到$this->getData(true)传的true值

这个和CGridView无关,主是要DataProvider的,建议给你出的,DataProvider创建代码,主要一台好使,一台不好使,就有点诡异了。

搞定了,PHP版本太低了,服务器上的是5.1.6,升级到5.2就没问题了。

Yii Framework 1.1.8 的php版本要求是不是要求5.2以上啦