Отображение диапазона элементов, отображаемых в разбиении на страницы PHP
Я сделал пагинацию на своей странице с ограничением показа 12 элементов на странице. Моя проблема сейчас заключается в том, как я могу отобразить диапазон элементов, отображаемых на странице. Вот мой код и то, что я пробовал до сих пор:
<div class="search_hits flex_box">
@if(count($result) == 0)
<p>No result found.</p>
@else
<p>検索結果{{$total}}件ヒット</p>
<p>Showing {{floor(count($result) / 12) + (count($result) % 12)}}items</p>
</div>
<ul class="projects">
@foreach ($result as $detail)
<li>
<a href="../contests/details/index.html">
<div class="prjct_title">
<p>{{ $detail['contest_name'] }}</p>
</div>
<div class="calc_height_o">
<div class="calc_height_i">
<div class="fitimg"><img src="{{ isset($detail->photos['0']) ? $detail->photos['0']['contest_photo'] : ''}}"></div>
</div>
</div>
<div class="prjct_btc">
<p>Prize BTC for {{ $detail['total_prize'] }}LPY</p>
</div>
</a>
</li>
@endforeach
</ul><!--projects END-->
@endif
@if ($result->hasPages())
<ul class="pagenation">
{{-- Previous Page Link --}}
@if ($result->onFirstPage())
<li class="disabled"><span>«</span></li>
@else
<li><a href="{{ $result->previousPageUrl() }}" rel="prev">«</a></li>
@endif
@foreach(range(1, $result->lastPage()) as $i)
@if($i == 1)
@if($i == $result->currentPage())
<li class="active"><span>{{ $i }}</span></li>
@else
<li><a href="{{ $result->url($i) }}">{{ $i }}</a></li>
@endif
@elseif($i == $result->lastPage())
@if($i == $result->currentPage())
<li class="active"><span>{{ $i }}</span></li>
@else
<li><a href="{{ $result->url($i) }}">{{ $i }}</a></li>
@endif
@elseif($i >= $result->currentPage() - 2 && $i <= $result->currentPage() + 2)
@if ($i == $result->currentPage())
<li class="active"><span>{{ $i }}</span></li>
@else
@if($i == ($result->currentPage() - 1) || $i == ($result->currentPage() + 1) )
<li><a href="{{ $result->url($i) }}">{{ $i }}</a></li>
@else
@if(($result->currentPage() - 2) > 1 || ( $result->currentPage() + 2 ) < $result->lastPage() )
<li><span class="ellipsis">...</span></li>
@endif
@endif
@endif
@endif
@endforeach
{{-- Next Page Link --}}
@if ($result->hasMorePages())
<li><a href="{{ $result->nextPageUrl() }}" rel="next">»</a></li>
@else
<li class="disabled"><span>»</span></li>
@endif
</ul>
@endif
<!--pagenation END-->
</div>
Но проблема здесь, это всегда отображается Showing 2 items
,
<p>Showing {{floor(count($result) / 12) + (count($result) % 12)}}items</p>
Вывод, который я хочу получить, будет таким: если у меня 18 результатов, на первой странице он будет отображаться Showing 1~12 items
, вторая страница Showing 13~18 items
,
Я нашел какой-то ответ здесь, но, кажется, он отображается под нумерацией страниц, но в моей ситуации он отображается в верхней части результатов.
1 ответ
Решение
Хорошо. Я нашел несколько хаков. Я сделал это так:
<p>
Showing
@if ($result->onFirstPage())
{{1 . '~' . 12}}
@else
{{(($result->currentPage()-1)*12)+1 . '~' . $result->currentPage() * 12}}
@endif
items
</p>
Вы можете изменить его в соответствии с вашими потребностями.