我正在尝试使用基于存储在数据库中的内容的内容填充我的网页。但是,我想跳过第一项;我想从第二项开始循环。
我怎样才能做到这一点?
@foreach($aboutcontent as $about)
<div class="col-md-4 text-center">
<div class="thumbnail">
<img id="" class="img-responsive" src="images/{{ $about->aboutimg }}" alt="">
<div class="caption">
<h3>{{ $about->aboutname }}</h3>
<p>{{ $about->aboutinfo }}</p>
</div>
</div>
</div>
@endforeach
答案 0 :(得分:7)
从Laravel 5.4开始,无论何时在刀片文件中使用foreach
或for
,您现在都可以访问$loop variable。 $ loop变量提供了许多有用的属性和方法,其中一个在这里很有用,用于跳过第一次迭代。请参阅下面的示例,这是一种更清晰的方法,可以获得与其他旧答案相同的结果:
@foreach ($rows as $row)
@if ($loop->first) @continue @endif
{{ $row->name }}<br/>
@endforeach
答案 1 :(得分:5)
试试这个:
@foreach($aboutcontent as $key => $about)
@if($key > 0){
<div class="col-md-4 text-center">
<div class="thumbnail">
<img id="" class="img-responsive" src="images/{{ $about->aboutimg }}" alt="">
<div class="caption">
<h3>{{ $about->aboutname }}</h3>
<p>{{ $about->aboutinfo }}</p>
</div>
</div>
</div>
@endif;
@endforeach
答案 2 :(得分:2)
假设$aboutcontents
是数字数组,只需使用旧的for
循环而不是新的foreach
// Notice you start at 1 and your first
// elem is 0 so... ta da... skipped
@for ($i = 1; $i < count($aboutcontents); $i++){
$about = $aboutcontents[$i]; //This is the object
//now use $about as you would
}
注意:我没有使用Larvel或刀片,但基于文档,这应该是可行的
答案 3 :(得分:1)
如果您想在刀片中执行此操作,则需要某种计数器:
<?php $count = 0;?>
@foreach
@if($count>1)
<div class="col-md-4 text-center">
<div class="thumbnail">
<img id="" class="img-responsive" src="images/{{ $about->aboutimg }}" alt="">
<div class="caption">
<h3>{{ $about->aboutname }}</h3>
<p>{{ $about->aboutinfo }}</p>
</div>
</div>
</div>
@endif
$count++
@endforeach
编辑:
我更喜欢Mark Baker在评论中提供的答案
@foreach(array_slice($aboutcontent, 1) as $about)
<div class="col-md-4 text-center">
<div class="thumbnail">
<img id="" class="img-responsive" src="images/{{ $about->aboutimg }}" alt="">
<div class="caption">
<h3>{{ $about->aboutname }}</h3>
<p>{{ $about->aboutinfo }}</p>
</div>
</div>
</div>
@endforeach
答案 4 :(得分:1)
有两种方法可以做到这一点: 1-如果您的$ key是数字,则可以使用:
for link in links:
helper("wget "+link)
2-如果$ key不是数字 使用@ loop-> first作为条件
答案 5 :(得分:0)
或者,您可以在迭代之前从数组中删除第一个元素:
@php
array_shift($aboutcontent);
@endphp
@foreach($aboutcontent as $about)
<div class="col-md-4 text-center">
<div class="thumbnail">
<img id="" class="img-responsive" src="images/{{ $about->aboutimg }}" alt="">
<div class="caption">
<h3>{{ $about->aboutname }}</h3>
<p>{{ $about->aboutinfo }}</p>
</div>
</div>
</div>
@endforeach
优点是您不需要任何条件来验证您是否在第一次迭代中。缺点是您可能需要同一视图中的第一个元素,但我们不知道您的示例。
注意在将数据传递给视图之前,从数组中删除第一个元素可能更有意义。
供参考,见: