2013-08-13 4 views
4

Я установил разбивку на страницы в своем конкретном виде/сайте, и он работает.Laravel 4 число разбивки на страницы

Проблема в том, у меня есть PHP счетчик:

<?php $count = 0;?> 
    @foreach ($players as $player) 
    <?php $count++;?> 
    <tr> 
    <td>{{ $count }}. </td> 

и всякий раз, когда я включаю страницы, он начинается с 1.

Как я могу изменить это?

ответ

16

Для того, чтобы достичь этого, необходимо инициализировать значение счетчика:

<?php $count = (($current_page_number - 1) * $items_per_page) + 1; ?> 

Уведомление Я первый вычитая 1 с текущей страницы, так что первый номер страницы 0. Затем я добавляю 1 в общий результат, поэтому ваш первый пункт начинается с 1, а не 0.

Laravel Paginator предоставляет удобный ярлык для этого:

<?php $count = $players->getFrom() + 1; ?> 
@foreach ($players as $player) 
    ... 

Есть несколько других, которые вы можете использовать, как вам нравится:

$players->getCurrentPage(); 
$players->getLastPage(); 
$players->getPerPage(); 
$players->getTotal(); 
$players->getFrom(); 
$players->getTo(); 
+0

Я попытался его реализации, но не может найти способ, то 3 не в строке # таблицы. Не могли бы вы выразиться в этом? paste.laravel.com/J99 –

+0

Вам нужно изменить строку 19 вашей пасты на ' getFrom() + 1; ?> '. – vFragosop

+0

Удивительная благодарность! Не знал, что эти методы существуют, это должно быть отмечено как ответ. –

0
<?php $count++; ?> 
@if($players->getCurrentPage() > 1) 
{{ ((($players->getCurrentPage() - 1)* $players->getPerPage()) + $count)}} 
@else 
{{$count}} 
@endif 
+0

Я попытался реализовать его, но не могу найти способ, 3 не находится в строке # таблицы , Не могли бы вы выразиться в этом? http://paste.laravel.com/J99 –

+0

http://paste.laravel.com/J9K –

1
<?php echo "Displaying ".$data->getFrom() ." - ".$data->getTo(). " of ".number_format($data->getTotal())." result(s)"; ?> 
1

Нам нужно только метод getFrom из экземпляра Paginator, чтобы иметь возможность подсчитывать первый элемент на странице.

<?php $count = $players->getFrom(); ?> 
@foreach ($players as $player) 
    <tr> 
     <td>{{ $count++ }}. </td> 
    </tr> 
@endforeach 
0

Вам не нужен счетчик.

После получения ключа, который начинается с 0, вам нужно добавить 1. После этого добавить текущую страницу-1 * Элементов на странице

Вы можете сделать это следующим образом:

@foreach ($players as $key => $player) 
    <tr> 
     <td>{{ $key+1+(($players->getCurrentPage()-1)*$players->getPerPage()) }}</td> 
    </tr> 
@endforeach 
0

Простой и элегантный:

@foreach ($players as $key => $player) 
    <tr> 
     <td>{{ $players->getFrom() + $key }}</td> 
    </tr> 
@endforeach 
Смежные вопросы