【问题标题】:Customised query to display in CGridView in yii在 yii 的 CGridView 中显示的自定义查询
【发布时间】:2013-12-16 06:42:40
【问题描述】:

控制器,

    $model=Product::model()->display_products_statistics();
$this->render('admin',array(
    'model'=>$model,
));

查看,

 $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'product-grid',
'dataProvider' => $model->display_products_statistics(),
'filter'=> $model,
'columns'=> array(
    'member_count',
    'seller_count',
    'visitor_count',
    'lowest price',
    'desc',
    'price',
    'createdate',
    'updatedate',
    'opid',
    'pimg',
    array(
        'class'=>'CButtonColumn',
    ),
),
     ));

型号,

$sql="select member_count,seller_count,
visitor_count from fc_product fp
group by  member_count,visitor_count,seller_count
order by member_count desc";
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$products_statistics=$command->queryAll();
$dataprovider=new CArrayDataProvider($products_statistics,
    array('pagination'=>false));
return $dataprovider->getData();

但是我得到了这个错误

致命错误:在第 111 行对 D:\wamp\www\yii\framework\zii\widgets\CBaseListView.php 中的非对象调用成员函数 getData()

我很困惑,不知道出了什么问题。

【问题讨论】:

    标签: yii-extensions yii yii-components yii-events


    【解决方案1】:

    您的问题是您没有以正确的方式使用 CDataProvider。 CGridView 需要一个 CDataProvider 的实例来显示,但您已经使用 CDataProvider->getData() 代替。我还建议使用 CSqlDataProvider,它是为自定义 sql 查询而设计的。在你的模型中试试这个;

    $count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM fc_product')->queryScalar();
    $sql="select member_count,seller_count,
    visitor_count from fc_product fp
    group by  member_count,visitor_count,seller_count
    order by member_count desc";
    return new CSqlDataProvider($sql, array(
        'totalItemCount' => $count,
        'sort' => array(
            'attributes' => array(
                 'member_count', 'visitor_count', 'seller_count',
            ),
        ),
        'pagination' => false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2011-02-23
      • 2015-01-23
      相关资源
      最近更新 更多