在x个条目之后显示一个条目

时间:2018-09-17 12:45:16

标签: database laravel logic

我在视图中有一个foreach循环显示条目。在x次输入后我该如何花钱?

@foreach($users as $user)
{{$user->name}}
@endforeach

3 个答案:

答案 0 :(得分:1)

如果数组是数字索引,则可以使用其键:

@foreach($users as $index=>$user)
  @if($index < 10)
    {{$user->name}}
  @else
    {{/*Whatever*/}}
  @endif
@endforeach

否则,您可以定义一个计数器:

@php($counter=0)
@foreach($users as $user)
  @if($counter< 10)
    {{$user->name}}
  @else
    {{/*Whatever*/}}
  @endif
  @php($counter++)
@endforeach

或者像艾哈桑所说的那样,您可以使用Laravel的循环变量:

@foreach($users as $index=>$user)
  @if($loop->index < 10)
    {{$user->name}}
  @else
    {{/*Whatever*/}}
  @endif
@endforeach

-编辑-

模操作将是您的最佳选择!

$show = false;
@foreach($users as $index=>$user)
  // for each 9 entries $show value will be reversed
  @if($loop->index % 9 === 0)
    $show = !show;
  @endif
  @if($show)
    {{$user->name}}
  @else
    {{/*Whatever*/}}
  @endif
@endforeach

答案 1 :(得分:1)

此代码将为每个x实体花费10毫秒。您可以根据需要更改时间(10):

{{$x=entities after which you want to spend sometimes;}}        
{{$n=0;}}
@foreach($users as $user)
{{$n++;}}
{{$user->name}}
@if($n == $x)
    {{sleep(10;)}}//here 10 means 10ms
    {{$n=0;}}
@endif
@endforeach

此代码将为第一个x实体花费10毫秒。您可以根据需要更改时间(10):

{{$x=entities after which you want to spend sometimes;}}    
{{$n=0;}}
@foreach($users as $user)
{{$n++;}}
{{$user->name}}
@if($n == $x)
    {{sleep(10;)}}//here 10 means 10ms
@endif
@endforeach

答案 2 :(得分:0)

Laravel具有内置的循环变量。它可能会帮助您。参见this

您可以像这样使用它:

@foreach($users as $user)
    @if ($loop->count == 1)
        {{$user->name}}
    @endif    
@endforeach