在另一个控制器视图中包含控制器视图

时间:2014-02-09 09:36:31

标签: php yii frameworks

我使用Yii框架,我有两个模型(论坛和主题),每个论坛都有很多主题。

现在我想在论坛(view.php)的视图中显示所有论坛的主题,在网上搜索后我发现了这条指令:

<?php $this->renderPartial("/topic/index",array('dataProvider' => new Topic)); ?>

但是当我试图显示论坛视图时,我有这个错误:

  

论坛及其行为没有名为“getData”的方法或闭包。

请帮忙。

请原谅我糟糕的英语。

2 个答案:

答案 0 :(得分:0)

protected / views / forum / index.php

<?php 
/* @var $this ForumController */
/* @var $dataProvider CActiveDataProvider */

$this->breadcrumbs=array(
'Forums',
 );
 echo $this->renderPartial('_menu');?>

 <h1>Forums</h1>

  <?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
  )); ?>

答案 1 :(得分:0)

您收到此错误,因为示例中的$ dataProvider是模型对象,而不是CActiveDataProvider。如果您使用Gii创建了主题模型,您将在Model类中看到有一个search()方法。这个search()方法返回一个CActiveDataProvider() - 这是你需要用于CListView的东西:

试试这个:

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider->search(), // Added search()
    'itemView'=>'_view',
)); ?>