[英]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.