2012-04-04 58 views
5

嘿傢伙,我已經開始在Yii框架工作,我下面的警予博客教程來學習Yii框架的基礎知識在本教程中,他們使用了CListView中在帖子中查看,但我得到一個異常enter image description hereCListView中在Yii框架


這是我在視圖文件已經使用的代碼:

$this->breadcrumbs=array(
    'Posts'=>array('index'), 
    $model->post_id, 
); 

$this->menu=array(
    array('label'=>'List Posts', 'url'=>array('index')), 
    array('label'=>'Create Posts', 'url'=>array('create')), 
    array('label'=>'Update Posts', 'url'=>array('update', 'id'=>$model->post_id)), 
    array('label'=>'Delete Posts', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->post_id),'confirm'=>'Are you sure you want to delete this item?')), 
    array('label'=>'Manage Posts', 'url'=>array('admin')), 
); 
?> 

<?php if(!empty($_GET['tag'])) : ?> 
<h1>Posts Tagged with <em><?php echo CHtml::encode($_GET['tag']); ?></em></h1> 
<?php endif; ?> 

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider' => $model, 
    'itemView' => '_view', 
    'template' => "{items}\n{pager}", 
)); 


這是我的PostsController包含:

/** 
    * Displays a particular model. 
    * @param integer $id the ID of the model to be displayed 
    */ 
    public function actionView($id) 
    { 
     $post = $this->loadModel($id); 
     $this->render('view',array(
      'model'=>$post, 
     )); 
    } 

/** 
    * Returns the data model based on the primary key given in the GET variable. 
    * If the data model is not found, an HTTP exception will be raised. 
    * @param integer the ID of the model to be loaded 
    */ 
    public function loadModel($id) 
    { 
     if($this->_model === NULL) 
     { 
      if(Yii::app()->user->isGuest) 
       $condition = 'post_status='.Posts::STATUS_PUBLISHED.' or post_status='.Posts::STATUS_ARCHIVED; 
      else 
       $condition = ''; 

      $this->_model = Posts::model()->findByPk($id, $condition); 

      if($this->_model === NULL) 
       throw new CHttpException(404, 'The requested page does not exist.'); 
     } 

     return $this->_model; 
    } 

我不能找出我做錯了,請幫助我。

回答

4

dataProviderCListView的財產應該是CActiveDataProvider(或不同的數據提供者)。嘗試

'dataProvider' => new CActiveDataProvider($model), 

改爲。

+0

作品..... thnx的幫助:) – 2012-04-04 08:07:13