限制 Blade foreach 循环中的结果
Limiting the results in Blade foreach loop
好吧,我是 Blade 的新手,我确实设法在我的页面上获得了我要求的所有结果。现在我只想在我的页面上显示所有项目中的 10 个,但我似乎对此很挣扎,尝试 array_slice 到目前为止没有任何成功。有什么建议吗?
下面是我目前使用的代码
{{--@foreach ($element['subs']->slice(0, 10) as $item)--}}
@foreach ($element['subs'] as $item)
<div class="highlight {{ $element['class'] }}">
<div class="el-inner-news">
<div class="image-news">
<a href="{{ $item['news-item']['slug'] }}"> <img src="{{ $item['news-item']['image'] or "/assets/frontend/baywest/images/newsholder.png" }}" class="center-img" alt="{{ $item['news-item']['title'] }}" /> </a>
</div>
<div class="desc-news">
<div class="title-highlight">
<a href="{{ $item['news-item']['slug'] }}">{{ $item['news-item']['title'] }}</a>
</div>
<div class="text-highlight">
{!! $item['news-item']['textfield'] !!}
</div>
<div class="learn-more-news">
<a href="{{ $item['news-item']['slug'] }}">{{ $item['news-item']['read-more'] or "Learn more" }} </a>
</div>
</div>
</div>
</div>
@endforeach
提前致谢!
您应该在控制器中限制结果,但这里是您如何在 blade 中完成此操作。不好看
<?php $count = 0; ?>
@foreach ($element['subs'] as $item)
<?php if($count == 10) break; ?>
// Your code
<?php $count++; ?>
@endforeach
如果它是 collection:
,那么更简洁的方法可能是这样
@foreach ($element['subs']->slice(0, 10) as $item)
...Code
@endforeach
collections 的另一种方式:
@foreach ($element['subs']->take(10) as $item)
...Code
@endforeach
如果是数组,则为:
@foreach (array_slice($element['subs'], 0, 10) as $item)
...Code
@endforeach
晚了,但要延长 in laravel 5.4 you can use the index
property of the loop variable:
@foreach ($element['subs'] as $item)
@if($loop->index < 10)
// Your code
@endif
@endforeach
因为 Laravel 5.3 有一种 blade 方法可以通过使用 Loop 变量和 break 指令来做到这一点:
@foreach ($element['subs'] as $item)
@if($loop->iteration > 10)
@break
@endif
{{-- Your loop code here --}}
@endforeach
方法帮到你
<div class="col-md-4" style="margin-top:40px; margin-bottom:40px">
@foreach($reviews->take(10) as $review)
<div class="carousel-cell">
{{ $review->id }}
</div>
@endforeach
</div>
第二种方式
<div class="col-md-4" style="margin-top:40px; margin-bottom:40px">
@foreach($reviews as $count => $review)
@if($count< 10)
<div class="carousel-cell">
{{ $review->id }}
</div>
@endif
@endforeach
</div>
据我所知,最简单的方法是使用 take(N)
函数,其中 N 代表循环数。
@foreach($element->take(5) as $item)
..your code
@endforeach
示例
@foreach($posts->take(5) as $post)
{{ $post->message }}
@endforeach
好吧,我是 Blade 的新手,我确实设法在我的页面上获得了我要求的所有结果。现在我只想在我的页面上显示所有项目中的 10 个,但我似乎对此很挣扎,尝试 array_slice 到目前为止没有任何成功。有什么建议吗?
下面是我目前使用的代码
{{--@foreach ($element['subs']->slice(0, 10) as $item)--}}
@foreach ($element['subs'] as $item)
<div class="highlight {{ $element['class'] }}">
<div class="el-inner-news">
<div class="image-news">
<a href="{{ $item['news-item']['slug'] }}"> <img src="{{ $item['news-item']['image'] or "/assets/frontend/baywest/images/newsholder.png" }}" class="center-img" alt="{{ $item['news-item']['title'] }}" /> </a>
</div>
<div class="desc-news">
<div class="title-highlight">
<a href="{{ $item['news-item']['slug'] }}">{{ $item['news-item']['title'] }}</a>
</div>
<div class="text-highlight">
{!! $item['news-item']['textfield'] !!}
</div>
<div class="learn-more-news">
<a href="{{ $item['news-item']['slug'] }}">{{ $item['news-item']['read-more'] or "Learn more" }} </a>
</div>
</div>
</div>
</div>
@endforeach
提前致谢!
您应该在控制器中限制结果,但这里是您如何在 blade 中完成此操作。不好看
<?php $count = 0; ?>
@foreach ($element['subs'] as $item)
<?php if($count == 10) break; ?>
// Your code
<?php $count++; ?>
@endforeach
如果它是 collection:
,那么更简洁的方法可能是这样@foreach ($element['subs']->slice(0, 10) as $item)
...Code
@endforeach
collections 的另一种方式:
@foreach ($element['subs']->take(10) as $item)
...Code
@endforeach
如果是数组,则为:
@foreach (array_slice($element['subs'], 0, 10) as $item)
...Code
@endforeach
晚了,但要延长index
property of the loop variable:
@foreach ($element['subs'] as $item)
@if($loop->index < 10)
// Your code
@endif
@endforeach
因为 Laravel 5.3 有一种 blade 方法可以通过使用 Loop 变量和 break 指令来做到这一点:
@foreach ($element['subs'] as $item)
@if($loop->iteration > 10)
@break
@endif
{{-- Your loop code here --}}
@endforeach
方法帮到你
<div class="col-md-4" style="margin-top:40px; margin-bottom:40px">
@foreach($reviews->take(10) as $review)
<div class="carousel-cell">
{{ $review->id }}
</div>
@endforeach
</div>
第二种方式
<div class="col-md-4" style="margin-top:40px; margin-bottom:40px">
@foreach($reviews as $count => $review)
@if($count< 10)
<div class="carousel-cell">
{{ $review->id }}
</div>
@endif
@endforeach
</div>
据我所知,最简单的方法是使用 take(N)
函数,其中 N 代表循环数。
@foreach($element->take(5) as $item)
..your code
@endforeach
示例
@foreach($posts->take(5) as $post)
{{ $post->message }}
@endforeach