ClistView Yii定位

时间:2014-02-10 19:13:41

标签: php yii clistview

我想简化我的观点并利用ClisView功能(排序,分页......)。

(我已经在评论列表上循环并显示列表)。

为实现这一目标,我将renderPartial作为我的_comments视图

$this->renderPartial('_comments',array(
            'dataProvider'=>$dataProvider,

在我的_comments视图中,为了列出与帖子相关的评论,我使用

<?php $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_comment',
    'template'=>"{items}\n{pager}",
)); ?> 

_comment视图只包含以下代码

<div class="comment">


    <div class="content">
        <?php
            $this->beginWidget('CMarkdown', array('purifyOutput'=>true));
            echo $data->content;
            $this->endWidget();
        ?>
    </div>

</div>

它工作正常,它显示正确的数据但不在正确的位置。

要说清楚,假设我有2个帖子,POST 1有3条评论,POST 2有2条评论。

如果我点击评论的POST 1链接,它看起来是正确的,它会显示

发布1 - 链接到评论

评论1(帖子1)

评论2(帖子1)

评论3(第1篇)

发布2-评论链接


但如果我点击评论的POST 2链接,它会显示以下

发布1 - 链接到评论

评论1(帖子2)

评论2(帖子2)

发布2 - 链接到评论


所以评论显示在帖子1下,而不是帖子2。

我逻辑上预期

发布1 - 链接到评论

发布2 - 链接到评论

评论1(帖子2)

评论2(帖子2)


我必须澄清帖子列表也是由cListView显示的,当我查看源代码时,生成的类名是相同的。

这里是定义dataprovider的代码

$criteria=new CDbCriteria(array(
            'condition'=>'post_id='.$post_id,
            'order'=>'create_time DESC',

            ));
            $dataProvider=new CActiveDataProvider('Comment', array(
            'pagination'=>array(
            'pageSize'=>Yii::app()->params['commentsPerPage'],
            ),
            'criteria'=>$criteria,
            ));
            $this->renderPartial('_comments',array(
            'dataProvider'=>$dataProvider,
        ));

所以我的问题是,如何让ClistView生成不同的类名?

你知道我如何能够显示评论吗?

提前感谢您的帮助

0 个答案:

没有答案