簡體   English   中英

無論收到多少記錄,如何循環一定次數(Laravel)

[英]How to loop a certain number of times regardless the number of records received (Laravel)

我有以下查詢:

      @php
     $age_id = \App\Goalage::where('goal_id',$cat_fil->id)->pluck('age_id');
     $age_name = \App\Age::wherein('rangeid',$age_id)->groupby('rangeid')->get();
     @endphp

以及以下 If 條件和 foreach:

                   @if(count($age_name) > 4 ) 
                           @foreach($age_name as $agename)
                        <button type="button" class="btn btn-outline-primary btn-sm-new mr-1"> 
                         {{$agename->agerange}} yrs
                        </button>
                          @endforeach
                     <a href="{{some.route}}">Click here for more than 4 results <a>
                  @else
                  //same code but will show 4 results or less

                   @endif

如何將以下語法更改為僅循環/顯示 foreach 中的前 4 個結果,即使還有更多結果?

@foreach($age_name as $agename)

你可以做這樣的事情在 4 次迭代后打破循環
foreach循環中添加這個

  @if($loop->iteration > 4)

    @break

  @endif

或者,您可以針對 Laravel 5.2 執行此操作

@php
    $count = 0;
@endphp
@foreach($age_name as $agename)
    @if($count >= 4 )
        @break
    @endif
    <button type="button" class="btn btn-outline-primary btn-sm-new mr-1"> 
    {{$agename->agerange}} yrs
    </button>
    @php
     $count++;
    @endphp
@endforeach

使用take()limit()從查詢中提取一定數量的記錄:

$age_name = \App\Age::wherein('rangeid',$age_id)->groupby('rangeid')->take(4)->get();

或者

$age_name = \App\Age::wherein('rangeid',$age_id)->groupby('rangeid')->limit(4)->get();

編輯:

使用$loop->iteration來獲取循環的當前迭代,並在它達到某個迭代時中斷,在你的情況下是4

@if(count($age_name) > 4 ) 
  @foreach($age_name as $agename)
      @if($loop->iteration > 4)
          @break;
      @endif
      <button type="button" class="btn btn-outline-primary btn-sm-new mr-1"> 
      {{$agename->agerange}} yrs
      </button>
  @endforeach
      <a href="{{some.route}}">Click here for more than 4 results <a>
@else
   //same code but will show 4 results or less
@endif

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM