0

我想简化我的视图并利用 ClisView 功能(排序、分页……)。

(我让 foreach 在评论列表上循环并显示列表)。

为了实现这一点,我渲染了我的 _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 显示,当我查看源代码时,生成的类名是相同的。

这是定义数据提供者的代码

$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 生成不同的类名?

你知道我怎样才能正确显示评论吗?

预先感谢您的帮助

4

0 回答 0