好吧,所以我对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
提前致谢!
答案 0 :(得分:16)
如果它是一个集合,可以采用更简洁的方法:
@foreach ($element['subs']->slice(0, 10) as $item)
...Code
@endforeach
收藏的另一种方式:
@foreach ($element['subs']->take(10) as $item)
...Code
@endforeach
或者如果它是一个数组:
@foreach (array_slice($element['subs'], 0, 10) as $item)
...Code
@endforeach
答案 1 :(得分:6)
您应该在控制器中限制结果,但是这里是如何在刀片中完成此操作的。不漂亮。
<?php $count = 0; ?>
@foreach ($element['subs'] as $item)
<?php if($count == 10) break; ?>
// Your code
<?php $count++; ?>
@endforeach
答案 2 :(得分:5)
迟到,但要在laravel 5.4中扩展Pawel Bieszczad's answer,您可以使用loop variable的index
属性:
@foreach ($element['subs'] as $item)
@if($loop->index < 10)
// Your code
@endif
@endforeach
答案 3 :(得分:2)
自Laravel 5.3起,就有一种使用Loop变量和break指令来执行此操作的刀片方式:
@foreach ($element['subs'] as $item)
@if($loop->iteration > 10)
@break
@endif
{{-- Your loop code here --}}
@endforeach
答案 4 :(得分:0)
采用方法可以帮助您
<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>
答案 5 :(得分:0)
据我所知,最简单的方法是使用 take(N)
函数,其中 N 代表循环次数。
@foreach($element->take(5) as $item)
..your code
@endforeach
示例
@foreach($posts->take(5) as $post)
{{ $post->message }}
@endforeach
答案 6 :(得分:-1)
从 Laravel 文档你可以做一个 for 循环
@for ($i = 0; $i < 10; $i++)
<div class="card" {{ $i }}>
// Whatever inside here
</div>
@endfor