我在页面上有一个listview设计,我希望一次打印2个models
的值。简而言之,它应该是这样的
<ul>
<li>
<div>
<img src="<?= $model->image ?>" />
<a href="#"><?= $model->title ?> </a>
</div>
<div>
<img src="<?= $model->image ?>" />
<a href="#"><?= $model->title ?> </a>
</div>
</li>
</ul>
但我不知道应该使用哪个循环?截至目前,我正在使用foreach从model
获取dataProvider
并一次显示一个,我现在正在使用下面的代码
<ul>
<?php foreach($dataProvider2->getData() as $record) { ?>
<li>
<img src="<?= $model->image ?>" />
<a href="#"><?= $model->title ?> </a>
</li>
<?php } ?>
</ul>
我想在一个<li>
中显示2个项目,这里的问题是dataProvider
可能会产生奇数或偶数的结果。
如何在循环中管理,如果数组是奇数而不是只打印最后一个循环中的一个项???
答案 0 :(得分:2)
您可以使用以下内容:
<?php
$data = $dataProvider->getData();
?>
<ul>
<?php for($i = 0; $i <= count($data) - 1; $i++) : ?>
<li>
<div>
<a href="#"><?php echo $data[$i]->id ?> </a>
</div>
<?php
if ($i < (count($data) - 1) ) : ?>
<div>
<a href="#"><?php echo $data[$i + 1]->id; ?> </a>
</div>
<?php endif; ?>
</li>
<?php $i++; ?>
<?php endfor; ?>
</ul>
结果:
<ul>
<li>
<div>
<a href="#">1 </a>
</div>
<div>
<a href="#">2 </a>
</div>
</li>
<li>
<div>
<a href="#">3 </a>
</div>
<div>
<a href="#">4 </a>
</div>
</li>
<li>
<div>
<a href="#">5 </a>
</div>
<div>
<a href="#">6 </a>
</div>
</li>
<li>
<div>
<a href="#">7 </a>
</div>
<div>
<a href="#">8 </a>
</div>
</li>
<li>
<div>
<a href="#">9 </a>
</div>
<div>
<a href="#">10 </a>
</div>
</li>
</ul>