我正在尝试循环保存在数据库上的一堆横幅,我需要将第一个横幅设置为活动状态。我试过if($ banner-> first){{'active'}} endif,但这对我来说似乎并不适用,因为所有项目都设置为活动状态。我想将id设置为1,但是如果有人删除了带有该id的图像,那么这会破坏。到目前为止,这是我的代码......
控制器:
public function index()
{
//
$banners = Banner::all();
$pages = Page::all();
return View::make('page')->with('banners', $banners, 'pages', $pages);
}
查看:
<div id="mainCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
@foreach($banners as $banner)
<div class="item @if($banner->first()) {{ 'active' }} @endif">
<img style="width: 100%; height: 500px" src="{{ $banner->image }}" alt="{{ $banner->alt }}">
</div>
@endforeach
</div>
<a class="left carousel-control" href="#mainCarousel" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a class="right carousel-control" href="#mainCarousel" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
我还尝试过$ banners-&gt; first()以及$ banner-&gt; first()并获得相同的结果。
对此的任何帮助将不胜感激。
答案 0 :(得分:3)
我认为这是非常自我解释的,但是Laravel基本上会找到数据库中第一个横幅的第一个ID,并将id与之匹配。
@if($banner->id === $banner->first()->id) {{ 'active' }} @endif
我发现如果您为不同的网页设置不同的横幅广告,那么这不是最好的解决方案,如果是这样,那么请尝试。
@foreach($banners as $index => $banner)
<div class="item @if($index == 0) {{ 'active' }} @endif">
<img style="width: 100%;" src="{{ $banner->image }}" alt="{{ $banner->alt }}">
</div>
@endforeach