Php 如何在Yii2 ListView中呈现具有不同视图的项目?
我需要以不同的视图显示新闻。现在,我将此代码用于演示:Php 如何在Yii2 ListView中呈现具有不同视图的项目?,php,listview,yii2,Php,Listview,Yii2,我需要以不同的视图显示新闻。现在,我将此代码用于演示: <?= ListView::widget([ 'dataProvider' => $dataProvider, 'itemView' => '_news', 'viewParams' => [ 'fullView' => true,
<?= ListView::widget([
'dataProvider' => $dataProvider,
'itemView' => '_news',
'viewParams' => [
'fullView' => true,
'context' => 'main-page'
]
]);
?>
我的问题是:前3个新闻节目显示大图像,另一个显示小图像。分页应该是必要的。看这个例子
请帮帮我。列表视图的每个项目视图都有一个名为
$index
的变量,可用于实现所需的结果。在\u news.php中,您可以执行以下操作:
if($index < 3)
$this->render('_news_big', ['model' => $model]);
else
$this->render('_news_small', ['model' => $model]);
if($index<3)
$this->render(“'news\u big',['model'=>$model]);
其他的
$this->render(“'news\u small',['model'=>$model]);
在\u news\u big.php中有大块的实际代码,在\u news\u small.php中有小块的代码
另一种方法是将两个块的代码都放在\u news.php中(尽管我不喜欢这种方法)
if($index<3)
{
//大区块代码
}
其他的
{
//小砌块代码
}
有关itemView的更多信息,请参阅
if($index < 3)
{
//Code for big block
}
else
{
//Code for small blocks
}