Listview Yii2列表视图:如何生成2个不同的父div来分离奇偶记录
我需要Yii2Listview Yii2列表视图:如何生成2个不同的父div来分离奇偶记录,listview,gridview,yii2,yii2-advanced-app,Listview,Gridview,Yii2,Yii2 Advanced App,我需要Yii2ListView生成两个不同的父div,其中包含以下项目: <div class="odd"> <items>item1</items> <items>item3</items> <items>item5</items> <items>item7</items> </div> <div class="even">
ListView
生成两个不同的父div,其中包含以下项目:
<div class="odd">
<items>item1</items>
<items>item3</items>
<items>item5</items>
<items>item7</items>
</div>
<div class="even">
<items>item2</items>
<items>item4</items>
<items>item6</items>
<items>item8</items>
</div>
项目1
项目3
项目5
项目7
项目2
项目4
项目6
项目8
您可以像这样扩展ListView
类:
class ListViewOdd extends ListView
{
public function renderItems()
{
$models = $this->dataProvider->getModels();
$keys = $this->dataProvider->getKeys();
$rowsOdd = $rowsEven = [];
foreach (array_values($models) as $index => $model) {
if ($index%2 == 0) {
$rowsOdd[] = $this->renderItem($model, $keys[$index], $index);
} else {
$rowsEven[] = $this->renderItem($model, $keys[$index], $index);
}
}
return '<div class="odd">'.implode($this->separator, $rowsOdd) . '</div><div class="even">'.implode($this->separator, $rowsOdd) .'</div>'; // replace <div> to Html::tag('div', ...)
}
}
那么,你已经尝试了什么?谢谢你的回复,我会尝试这个伟大的解决方案,我尝试了这个,解决了我的问题。真的很感激
echo ListViewOdd::widget([
'dataProvider' => $dataProvider,
'itemView' => '_post',
]);