繁体   English   中英

如何在Yii2 ListView中呈现具有不同视图的项目?

[英]How to render items with different views in Yii2 ListView?

我需要以不同的视角来显示新闻。 现在,我使用以下代码进行演示:

 <?= ListView::widget([
                   'dataProvider' => $dataProvider,
                   'itemView' => '_news',
                   'viewParams' => [
                       'fullView' => true,
                       'context' => 'main-page'
                   ]
               ]);
                ?>

我的问题是:前三个新闻显示的图像较大,另一个显示的图像较小。 分页应该有效。 看这个例子 在此处输入图片说明

请帮我。

列表视图的每个项目视图都有一个名为$index的变量,可用于实现所需的结果。 _news.php中,您可以执行以下操作:

if($index < 3)
    $this->render('_news_big', ['model' => $model]);

else
    $this->render('_news_small', ['model' => $model]);

并有在_news_big.php大块的实际代码,并在_news_small.php小块代码。

另一种方法是将代码放置在_news.php内的两个块中(尽管我不喜欢这种方法)

if($index < 3)
{
    //Code for big block
}
else
{
    //Code for small blocks
}

有关itemView的更多信息,请参考http://www.yiiframework.com/doc-2.0/yii-widgets-listview.html#$itemView-detail

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM