【发布时间】:2013-12-12 11:35:43
【问题描述】:
以下是我的疑问,如何在 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
请告诉我我是新手
我确实尝试过,但不知道它是怎么做的 :(
跟随 r d 变化
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', array(
'dataProvider'=>Member::model()->top_selling_products(),
'enablePagination' => false,
'columns'=>array(
'pid',
'pid_count',
array(
'class'=>'CButtonColumn',
),
),
)); `
但我得到以下错误
未定义属性“CDbCriteria.from”。
请告诉我我哪里错了
【问题讨论】:
-
$model= new member // $model 是成员的实例
-
你知道gii代码生成器吗?其次,您的模型中有成员类文件吗?