嘿伙计们我已经开始研究yii框架了,我正在关注yii博客教程,在本教程中学习yii框架的基础知识,他们在帖子视图中使用了ClistView但是我得到了异常
这是我在视图文件中使用的代码:
$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;
}
我无法找到我做错的地方,请帮助我。
答案 0 :(得分:4)
dataProvider
的{{1}}属性应该是CListView
(或不同的数据提供者)。尝试
CActiveDataProvider
代替。