Извините, у меня проблема с моей пагинацией laravel. Дает мне одну страницу за одной, например, в моей таблице 16 строк я делаю разбивку на страницы (10), нумерация страниц дает мне на первой странице от 1 до 10 и на второй страница с 1 по 6 хочу нормальную нумерацию страниц с 1 по 10 и с 11 по 16 помогите пожалуйста
public function allappointmnts(){
$allapo=DB::table('bookappoitments')->orderBy('times.id')
->join('users','bookappoitments.users_id','users.id')
->join('times','bookappoitments.times_id','times.id')
->join('dates','bookappoitments.Dates_id','dates.id')
->paginate(10);
return view('admin.Managers.allappoinments',compact('allapo'));
}
на странице блейда:
<div class = "text-center">
{!! $allapo->links(); !!}
</div>
Таблица :
<table class = "table table-bordered table-hover table-striped">
<thead>
<tr>
<th>#</th>
<th>Date</th>
<th>Time</th>
<th>Employee</th>
<th>Name</th>
<th>Email</th>
<th>Company</th>
<th>Phone</th>
<th>Location</th>
<th>Remarks</th>
<th style = "text-align: center;">Action</th>
</tr>
</thead>
<tbody>
<tr>
@foreach($allapo as $Appointments)
<td>{{ $loop->index+1 }}</td>
<td>{{ $Appointments->Dates }}</td>
<td>{{ $Appointments->from_to }}</td>
<td>{{ $Appointments->name }}</td>
<td>{{ $Appointments->gustname }}</td>
<td>{{ $Appointments->gustemail }}</td>
<td>{{ $Appointments->gustcompany }}</td>
<td>{{ $Appointments->gustphone }}</td>
<td>{{ $Appointments->Location }}</td>
<td>{{ $Appointments->Remarks }}</td>
<td>
<a class = "btn btn-success btn-mini deleteRecord " href = "{{url('showbymanagment',$Appointments->id)}}">Show</a>
</td>
</tr>
@endforeach
Да, я уверен, что не могу представить :)
Можете ли вы показать несколько скриншотов этого?
хорошо, секундочку
Можете ли вы добавить свой код для таблицы?
@ rpm192 уверен, что добавил таблицу
Таким образом, он на самом деле показывает разные предметы. Вы «просто» хотите, чтобы нумерация ({{ $loop->index+1 }}) была другой? dd($allapo), он должен содержать количество элементов, на какой странице вы находитесь и т. д. Посчитайте. Обновлено: он должен даже содержать "from" и "to".
@kerbholz Нет, разницы нет, цифры 10 и 6 должны быть 16 на каждой странице.
{{ $allapo->firstItem() }} возвращает/показывает что-нибудь? Если это так, добавьте это в свой индекс цикла






Попробуйте этот код:
<?php $i = $lists->perPage() * ($lists->currentPage() - 1); ?>
<table class = "table table-bordered table-hover table-striped">
<thead>
<tr>
<th>#</th>
<th>Date</th>
<th>Time</th>
<th>Employee</th>
<th>Name</th>
<th>Email</th>
<th>Company</th>
<th>Phone</th>
<th>Location</th>
<th>Remarks</th>
<th style = "text-align: center;">Action</th>
</tr>
</thead>
<tbody>
<tr>
@foreach($allapo as $Appointments)
<td><?php $i++; ?>{{ $i }} </td>
<td>{{ $Appointments->Dates }}</td>
<td>{{ $Appointments->from_to }}</td>
<td>{{ $Appointments->name }}</td>
<td>{{ $Appointments->gustname }}</td>
<td>{{ $Appointments->gustemail }}</td>
<td>{{ $Appointments->gustcompany }}</td>
<td>{{ $Appointments->gustphone }}</td>
<td>{{ $Appointments->Location }}</td>
<td>{{ $Appointments->Remarks }}</td>
<td><a class = "btn btn-success btn-mini deleteRecord " href = "
{{url('showbymanagment',$Appointments->id)}}">Show</a></td>
</tr>
@endforeach
спасибо, но выдает ошибку Неопределенная переменная: i (Вид: C:\xampp\htdocs\–-prefer-dist - final без удаления\resources\views\admin\Managers\allappoinments.blade.php)
Вы вставили этот код ниже перед foreach? <?php $i = $lists->perPage() * ($lists->currentPage() - 1); ?>
чтобы увидеть правильное число измените строку
<td>{{ $loop->index+1 }}</td>
к:
<td>{{ ($allapo->currentPage() - 1) * $allapo->perPage() + $loop->iteration }} <td>
очень хорошо зацикливается от 1 до 16, но в целом есть ли какой-либо код, чтобы дать мне общее количество на каждой странице, которое он все еще дает мне на первой странице 10 и на второй 6
Не совсем уверен, но вам нужно будет написать какую-то функцию, чтобы исправить это.
По сути, вам нужно сделать это:
function correct_pagination_numbers($cp, $pp, $counter)
{
$c = (($pp * $cp) + $counter) - $pp;
return $c;
}
Затем вы можете вызвать функцию в своем представлении следующим образом:
<td>{{ correct_pagination_numbers($allapo->currentPage(), $allapo->perPage(), $loop->index) }}</td>
Вероятно, было бы лучшим решением сделать это во вспомогательном файле. Если вы не знаете, как создать вспомогательный файл и автоматически загрузить его, вы можете посмотреть здесь.
Спасибо за ваш ответ, но дайте мне вызов неопределенной функции correct_pagination_numbers() (вид: C:\xampp\htdocs\–-prefer-dist - final без удаления\resources\views\admin\Managers\allappoinments.blade.php )
Вы изменили файл composer.json, чтобы он автоматически загружал вспомогательный файл?
Ваша проблема в том, что вы используете текущий индекс каждого цикла, который всегда будет находиться в диапазоне от 1 до 10 на каждой странице (поскольку у вас есть 10 элементов на странице).
Вам нужно получить текущую страницу, которую вы используете
$allapo->currentPage()
Затем получите количество элементов на странице, которую вы получили, используя
$allapo->perPage()
Умножьте эти два, и это будет базовое число для вашей разбивки на страницы, что означает, что это число, от которого вы должны увеличиваться.
Затем индексированная таблица должна быть
{{ $allapo->currentPage() * $allapo->perPage() + $loop->index }}
вместо
{{ $loop->index+1 }}
Затем, чтобы исправить номера заголовков (10 и 6 вверху), получите общее количество результатов вместо количества страниц, используя
$allapo->total()
См. Документация Laravel для более подробной информации.
Вам нужно будет описать, в чем именно проблема - что происходит, что должно произойти. Мы не можем читать ваши мысли или видеть, что у вас на экране.
Попробуй
@foreach($allapo as $key => $Appointments)
{{ $key + $allapo->firstItem() }}
@endforeach
Вы уверены, что вторая страница на самом деле не загружает 11-16 элементов? Здесь нечего утверждать иначе.