2013-12-12 34 views
0

以下是我的查詢我怎樣我知道代碼視圖,模型,控制器警予如何編寫自定義的語句來抓取結果數組的顯示

select productid, count(*) from fc_member group by productid order by count(*)desc LIMIT 3

請告訴我是新手 我沒有嘗試,但隨後沒有了它的方式和內容:(

控制器

public function actiondsplayproduct() 
{ 
    $model=new Member; 
    $dataProvider=new CActiveDataProvider('$model', 
      array(
        'criteria'=>array(
          'select'=>'productid, COUNT(*)as Cproductid', 
          'from'=>'fc_member', 
          'group'=>'productid', 
          'order'=>'COUNT(*) ', 

        ), 
      ) 
    ); 
    $this->render('dsplayproduct',array(
      'dataProvider'=>$dataProvider, 
    )); 


    //$this->render('dsplayproduct',array('model'=>$model)); 
} 

視圖

$this->widget('zii.widgets.grid.CGridView', array(
     'dataProvider'=> $dataProvider, 
     'filter'=>$model, 
     'columns'=>array(
       'productid', 
       'Cproductid', 
     ) 
)); 

而且還可以得到下面的錯誤

PHP警告

include($model.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory 

請讓我知道我是一個新手

我沒有嘗試,但後來不知道它是如何和什麼的:(

以下RD改變

model 

`public function top_selling_products() { 

    $criteria = new CDbCriteria; 
    $criteria->select = 'productid , count(*) as pid_count'; 

    $criteria->from='fc_member'; 
    $criteria->group = 'productid'; 
    $criteria->order = 'pid_count desc'; 


return new CActiveDataProvider($this, array(
'criteria'=>$criteria, 
)); 
    }` 

    controoler 
    ` 
    public function actiondsplayproduct() 
    { 

$dataProvider=new CActiveDataProvider('Member'); 
$this->render('dsplayproduct',array(
    'dataProvider'=>$dataProvider, 
)); 

} view $這個 - >插件( 'zii.widgets.grid.CGridView',陣列(

'dataProvider'=>Member::model()->top_selling_products(), 
    'enablePagination' => false, 
     'columns'=>array(
'pid', 
    'pid_count', 
    array(
    'class'=>'CButtonColumn', 
    ), 
     ), 
)); ` 

,但我得到了如下因素誤差

屬性「CDbCriteria.from」未定義。

PLZ現在讓我在哪裏,我錯了

+0

$模式=新成員// $模式是會員 – user3016447

+0

的情況你瞭解GII代碼生成器。其次,你的模型中是否有成員類文件? –

回答

0

我認爲這不是字符串$model比你想投入CActiveDataProvider類...

所以,它不是

CActiveDataProvider('$model', ... 

CActiveDataProvider('model', ... 

CActiveDataProvider($model, ... 
+0

$ model = new member // $ model是成員的實例 – user3016447

0

錯誤說你沒有「$ model.php」文件 - 所以你必須在那裏放置模型文件的有效名稱和現有名稱。

例如:

new CActiveDataProvider('model', ... 
+0

$ model = new member // $ model是成員的實例 – user3016447

+0

爲什麼實例是字符串? –

相關問題