下面是我的问题,我如何在yii 中放置视图、模型和控制器中的代码
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
$this->widget('zii.widgets.grid.CGridView',数组(
'dataProvider'=>Member::model()->top_selling_products(),
'enablePagination' => false,
'columns'=>array(
'pid',
'pid_count',
array(
'class'=>'CButtonColumn',
),
),
)); `
但是我得到以下错误
未定义属性"CDbWriter.from"。
Plz让我现在在哪里我错了
我认为它不是要放入CActiveDataProvider
类的字符串$model
。。。
所以,它不是
CActiveDataProvider('$model', ...
但是
CActiveDataProvider('model', ...
或
CActiveDataProvider($model, ...
error表示您没有"$model.php"文件,因此您必须为模型文件提供有效且现有的名称。
例如:
new CActiveDataProvider('model', ...