2012-04-04 15 views
5

Ehi ragazzi ho iniziato a lavorare su framework Yii e sto seguendo il tutorial Yii blog per imparare le basi del framework Yii in questo tutorial hanno usato un CListView in vista messaggi, ma io sono sempre un'eccezione enter image description hereCListView in Yii Framework


Questo è il codice che ho usato nel file di visualizzazione:

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


Questo è ciò che la mia PostsController contiene:

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

non posso trovare dove sto facendo male ti prego, aiutami.

risposta

4

La proprietà dataProvider di un CListView deve essere un CActiveDataProvider (o un altro fornitore di dati). Prova

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

invece.

+0

funziona ..... grazie per l'aiuto :) –