从CListView访问视图中模型的元素

时间:2013-02-11 20:56:47

标签: yii

对不起这个问题。我已经阅读了两本书和几本教程,以及Yii的文档,但我仍然无法理解如何做这个非常基本的事情。基本上,我需要从表中读取所有元素并将它们显示在列表中。

我做了这个

在控制器上(方法actionIndex())

$criteria = new CDbCriteria();

    $dataProvider = new CActiveDataProvider('Items', array(
        'criteria'=>$criteria,
    ));

    $this->render('index',array(
        'dataProvider'=>$dataProvider,
    ));

在视图index.php

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

));

&GT;

在视图item.php

<?php $this->renderPartial('_item',array(
        'post'=>$dataProvider,

    )); ?>

并在局部视图中_item

<?php
$this->Widget('CMarkdown', array('purifyOutput'=>true));

&GT;

即使分页有效,系统也不会显示任何内容。我相信必须存在一些方法来在渲染视图中访问具有当前ActiveRecord元素或其他元素的对象(我不明白控制器的CActiveDataProvider是否是ActiveRecord元素)。

我真的很感激能帮助我解决这个问题的每个人

1 个答案:

答案 0 :(得分:2)

根据您的说法,您似乎有一个不必要的文件。你不需要item.php。

此外,您的部分视图_item需要是:

$this->beginWidget('CMarkdown', array('purifyOutput'=>true));
echo $data->content;
$this->endWidget();

我写了$ data-&gt;内容;但您需要将内容替换为您实际想要显示的属性。