如何使用DataProvider在CGridView中显示查询结果
这3个表只是我整个项目(用户、配置文件、登录)的一部分 Login.php(登录表的模型) 我必须在CGridView中显示它,我要显示的代码如下:如何使用DataProvider在CGridView中显示查询结果,gridview,yii,Gridview,Yii,这3个表只是我整个项目(用户、配置文件、登录)的一部分 Login.php(登录表的模型) 我必须在CGridView中显示它,我要显示的代码如下: <?php $this->widget('zii.widgets.grid.CGridView', array( 'dataProvider'=>Login::model()->topten_logins(), 'enablePagination' => false, 'columns'=&g
<?php $this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>Login::model()->topten_logins(),
'enablePagination' => false,
'columns'=>array(
'Name',
'Joined',
'Logins',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
我只想显示登录次数最多的前十名用户。
但它给我的错误信息是:
未定义属性“Login.Name”
我以前没用过Yii。因此,我们将非常感谢您的帮助。尝试将函数“public function topten_logins()”移动到用户模型中,或者移动到您为CGridView指定了所有列名的模型中
否则,可以将列数组设置为
$column['name']=>get name from user table
$column['Joined']=>get Joined from related table
$column['Logins']=>get Logins from related table
然后设置
'columns'=>$column
在CGridView中,问题是您正在使用“as Name and as Logins”进行查询。在这种情况下,您需要做的是将“Name”和“Logins”定义为模型中的变量。在模型的类定义中添加
public $Name;
public $Logins;
而且它应该能用。非常感谢,从过去14个小时以来,我一直在为这3条线忙。。它工作得很好。嘿@redGREENblue,你能告诉我如何在这上面应用排序吗?谢谢你的帮助,但它不起作用,或者我不能清楚地理解它。。@redGreenblue的另一个建议很简单,告诉我在哪里设置列数组??(在函数内部或其他地方)
public $Name;
public $Logins;