【发布时间】:2017-03-16 05:47:03
【问题描述】:
假设我有一个要显示为列表的数据数组:
$goods = [
['title' => 'First item', 'description' => 'First item description'],
['title' => 'Second item', 'description' => 'Second item description'],
['title' => 'Third item', 'description' => 'Third item description']
];
还有以下观点:
<div class="good-block">
<h1>{{ $good['title'] }}</h1>
<p>{{ $good['description'] }}</p>
</div>
现在我想显示所有使用<hr> 作为分隔符的项目。
因此,最终的视图如下:
@foreach ($goods as $good)
<div class="good-block">
<h1>{{ $good['title'] }}</h1>
<p>{{ $good['description'] }}</p>
</div>
<hr />
@endforeach
问题在于,很明显,分隔符将显示在最后一项之后,而不仅仅是元素之间。在简单数组的情况下implode可以作为拼接的工具。
但是如何在模板文件中使用这种方法呢?是否有不同的方法,允许保持代码干净和逻辑,而不添加不必要的条件,例如检查当前元素不是数组的最后一个元素?
谢谢!
【问题讨论】:
-
如果你不想让 PHP 处理这个问题,你可以使用
CSS将最后一个.good-block的<hr/>元素的display属性设置为none;,某事喜欢.good-block:last-child > hr { display:none; }(CSS可以随时纠正)
标签: php html template-engine templating