2012-04-04 26 views
5

Hey guys tôi đã bắt đầu làm việc trên yii framework và tôi đang theo hướng dẫn blog yii để tìm hiểu kiến ​​thức cơ bản về framework yii trong hướng dẫn này họ đã sử dụng ClistView ở chế độ xem bài viết nhưng tôi nhận được ngoại lệ enter image description hereCListView trong Yii Framework


Đây là mã mà tôi đã sử dụng trong xem file:

$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}", 
)); 


Đây là những gì tôi PostsController chứa:

/** 
    * 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; 
    } 

tôi không thể tìm ra nơi tôi đang làm sai hãy giúp tôi.

Trả lời

4

Tài sản dataProvider của CListView phải là CActiveDataProvider (hoặc nhà cung cấp dữ liệu khác). Hãy thử số máy tính

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

thay thế.

+0

hoạt động ..... thnx để được trợ giúp :) –