Php 将活动记录数据插入Yii';CGRidView小部件
我在mysql中有一个表,我想用Php 将活动记录数据插入Yii';CGRidView小部件,php,mysql,yii,yii-components,zii-widgets,Php,Mysql,Yii,Yii Components,Zii Widgets,我在mysql中有一个表,我想用CGridView小部件显示它。以下是我迄今为止的代码: 我的控制器文件(当然被剪掉了): 我的视图文件看起来像(被剪断): 我得到以下错误: 在C:\xampp\framework\zii\widgets\CBaseListView.php的第105行对非对象调用成员函数getData() 这是该文件的源代码 我很确定我把列表对象放在小部件中是搞砸了。在我将$list传递给小部件之前,是否需要对其执行一些操作?您可以使用CActiveDataProvider
CGridView
小部件显示它。以下是我迄今为止的代码:
我的控制器文件(当然被剪掉了):
我的视图文件看起来像(被剪断):
我得到以下错误:
在C:\xampp\framework\zii\widgets\CBaseListView.php的第105行对非对象调用成员函数getData()
这是该文件的源代码
我很确定我把列表对象放在小部件中是搞砸了。在我将$list传递给小部件之前,是否需要对其执行一些操作?您可以使用CActiveDataProvider Yii的类。 大概是这样的:
$dataProvider = new CActiveDataProvider('model', array(
'criteria'=>array(
'order'=>'column1',
),
));
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'my-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'column1',
'column2',
'column3',
array(
'class'=>'CButtonColumn',
),
),
));
其中model是您的模型,columns是您的列 findAll()返回数组,而cactivedaptaprovider返回数据提供程序
如果要使用find all,只需使用CArrayDataProvider转换数组即可
例如:
<?
php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>new CArrayDataProvider($list, array()),
));
?>
使用CArrayDataProvider也是一种选择。但是,当它来自CActiveDataProvider时,排序就很容易了。新的CActiveDataProvider调用是否会与小部件一起出现在视图中?回答我自己的评论:否。您在控制器中调用dataprovider并将变量传递给视图。这起作用了。谢谢你,先生。那完全错了。您不需要使用CactiveDataProvider,这并不是完全错误的。我把“必须”改为“可以”。你可以用任何一种。“大错特错”和你的否决票一样极端。你应该编辑一下他的问题。我没有用芬德尔。我用了他的例子,只是要求你通过AR模型。我会删除这个答案,并把它作为一个评论写在你的原始模型下。
$dataProvider = new CActiveDataProvider('model', array(
'criteria'=>array(
'order'=>'column1',
),
));
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'my-grid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'column1',
'column2',
'column3',
array(
'class'=>'CButtonColumn',
),
),
));
<?
php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>new CArrayDataProvider($list, array()),
));
?>