Я работаю с Laravel 5.6, показывая данные, но он не работает идеально.
Этот код отображает меня на первой странице Отображение с 0 по 10 из 35 и отображение последней страницы Отображение с 30 по 40 из 35
$page = $request->has('page') ? $request->get('page') : 1;
$total = UserAdmin::count();
$perPage = 10;
$showingTotal = $page * $perPage;
$currentShowing = $showingTotal>$total ? $total : $showingTotal;
$showingStarted = $showingTotal - $perPage;
$tableInfo = "Showing $showingStarted to $showingTotal of $total";
Я хочу, чтобы на первой странице отображались от 1 до 10 из 35 записей, и будет отображаться последняя страница. От 30 до 35 из 35 записей.
$tableInfo = "Showing $showingStarted to $currentShowing of $total";
Использовать указанный $ displayTotal вместо $ currentShowing
Вы должны попробовать это:
Пожалуйста, используйте paginate в вашем запросе и попробуйте:
$perPage = 10;
$rsltUsers = UserAdmin::paginate($perPage);
Это потому что ваш $showingTotal
является фиксированным значением, рассчитанным из $page * $perPage
,
Быстрое и грязное решение было бы добавить строку:
if ($showingTotal > $total) {
$showingTotal = $total;
}
Но, пожалуйста, подумайте о том, чтобы использовать правильный пагинат, предлагаемый в Laravel. $showingTotal
должен динамически обновляться, а не просто рассчитываться из фиксированных переменных.