在yii中的CListView

时间:2012-03-16 13:50:10

标签: listview yii

请解决我的问题 我正在使用如下的Clistview

$this->widget('zii.widgets.CListView', array(
                'id'=>'yii-list',
                'dataProvider'=>$model,
                'itemView'=>'_remark_list',
                //'template'=>'{pager}<div class="fleft"><b>{sorter}</b></div><div class="fright">{summary}</div><div class="clear"></div><div class="rightInner"><h1>Search Result</h1>{items}</div>{pager}',
                'enableSorting' => true,
                //'sortableAttributes'=>array(
                //  'email_id'=>'email_id',
                //),
                'afterAjaxUpdate'=>'function(id,data) {
                        $("a#manage-inline").fancybox({"scrolling":"auto","titleShow":false,"width":"850px","height":"500px"});
                    }',
                ));

我得到了这样的错误 致命错误:在非对象上调用成员函数getData() 在 dataProvider

在dataprovider中写什么。

这是我的控制器

public function actionViewEmailLog($id, $layout=false)
    {
        $model          = EmailArchive::model()->findAll('email_id =:data', array(':data'=>$id));
        $this->layout   = false;
        $this->render('ViewEmailLog',array('model'=>$model));
    }

PLZ很快帮助我 提前谢谢

1 个答案:

答案 0 :(得分:3)

从控制器,您需要将数据提供者传递给视图:

$dataProvider = new CActiveDataProvider('Model');

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

您可以粘贴正在呈现此视图的Controller的操作吗?

看到控制器代码后,

更新,你必须这样打电话:

$dataProvider = new CActiveDataProvider('EmailArchive', array(
        'criteria' => array(
            'condition' => 'email_id=:id',
            'params' => array(':id' => $id)
    )));
$this->render('ViewEmailLog', array('dataProvider' => $dataProvider));