我需要以不同的观点显示新闻。现在我使用此代码进行演示:
<?= ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => '_news',
'viewParams' => [
'fullView' => true,
'context' => 'main-page'
]
]);
?>
我的问题是:前3个新闻节目有大图片,另一个有小图片。分页应该是必要的。看这个例子
请帮助我。
答案 0 :(得分:2)
列表视图的每个项目视图都有一个名为if($index < 3)
$this->render('_news_big', ['model' => $model]);
else
$this->render('_news_small', ['model' => $model]);
的变量,可用于实现所需的结果。在 _news.php 中,您可以执行以下操作,
if($index < 3)
{
//Code for big block
}
else
{
//Code for small blocks
}
获取 _news_big.php 中大块的实际代码以及 _news_small.php 中小块的代码。
另一种方法是将两个块的代码放在 _news.php 中,(虽然我不喜欢这种方法)
monetize :price_cents
有关itemView的更多信息,请参阅http://www.yiiframework.com/doc-2.0/yii-widgets-listview.html#$itemView-detail