Laravel只显示前5个阵列

时间:2017-12-11 09:07:28

标签: php laravel-5

$ reviews有10个阵列,我试图只显示前5个。这是我到目前为止所得到的。

@for ($i = 0; $i < 6; $i++)
@foreach ($reviews as $reviews; i++)
    <p>Body</p>
@endforeach
@endfor

知道为什么这不起作用吗?

5 个答案:

答案 0 :(得分:2)

只需使用take方法并运行foreach循环,就像这样

    @foreach($reviews->take(5) as $review)
        <p>{{ $review->body }}</p>        
    @endforeach

我认为这更简单,更清洁

答案 1 :(得分:1)

假设您使用Collections,可以使用take方法(请参阅here)方法:

  

$ collection = collect([0,1,2,3,4,5]);

     

$ chunk = $ collection-&gt; take(3);

     

$ chunk-&GT;所有();

     

// [0,1,2]

用法

$reviews2 = $reviews->take(5);
@foreach ($reviews2 as $review)
    <p>{{ $review->body }}</p>
@endforeach

答案 2 :(得分:0)

您可以使用@if限制@foreach

内的循环
@for ($i = 0; $i < 6; $i++)
    @foreach ($reviews as $review)
        {{$i++}}
        @if ($i < 1)
            <p>Body</p>
        @endif
    @endforeach
@endfor

答案 3 :(得分:0)

您编写了foreach

的错误语法
<?php $i = 1; ?>
@foreach ($reviews as $review)
    <p>Body</p>
    @if ($i == 5)
        break;
    @endif
    <?php $i++; ?>
@endforeach

答案 4 :(得分:0)

正如你所问。

  

知道为什么这不起作用吗?

因为这里有语法错误i++

@for ($i = 0; $i < 6; $i++)
  @foreach ($reviews as $key=>$values)
    <p>{{$i}} : Body</p>  
  @endforeach
@endfor

注意:将$reviews行值更改为$values