对于codeigniter / php中的视图,下面是否考虑过多?其中$ springtrail是在模型中计算的数组?
<div id="page_name">Website</div>
<?php
$count = count($springtrail);
for($i = $count; $i >= 1; $i--){
if ($i != 1)
{
?> <div class="springtrail_button" id="st-0">arrayitem</div> <?php
} else
{
?> <a class="springtrail_link" href="#" id="1">Add</a> <?php
}
}
答案 0 :(得分:4)
不,它与您的外观逻辑有关,因此将它放在您的视图之外本质上会从您的视图中删除逻辑(并将其置于别处),打破您的mvc模型
答案 1 :(得分:1)
我认为没关系,只要你不延伸太多。
但是,最好将该逻辑保留在控制器中......因此你可以这样做:
控制器:
$count = count($springtrail);
for($i = $count; $i >= 1; $i--) {
$data['s_count'] = ($i !== 1 ? 'button' : 'link');
}
查看:
<?php if($s_count == 'button'): ?>
<html here>
<?php else: ?>
<other html here>
<?php endif; ?>
答案 2 :(得分:0)
是的,我会说这太逻辑了。我想我可能会这样做:
<div id="page_name">Website</div>
<a class="springtrail_link" href="#" id="1">Add</a>
<?php foreach ($springtrail as $item): ?>
<div class="springtrail_button" id="st-0">arrayitem</div>
<?php endforeach ?>
注意语法是如何不同的。我强烈建议您使用alternative PHP syntax。
我认为,只要您发现自己在视图中分配变量值,就会表明您正走错了路。至于以不同方式显示列表中的第一个项目,那么,如果第一个项目与其他项目不同,那么我会说它不是该列表的成员,对吧?使其成为控制器中的单独值。看起来你甚至不会为第一个项目输出变量值,那么为什么不在开始输出列表之前静态显示它呢?
希望有所帮助。