РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
219 of 274 menu

Метод previousPage

Метод previousPage класса WithPagination осуществляет переход на предыдущую страницу в пагинации. Метод не принимает параметров и возвращает void. После вызова метода Livewire автоматически обновляет шаблон компонента, отображая данные предыдущей страницы.

Синтаксис

<?php $this->previousPage(); ?>

Пример

Давайте создадим компонент со списком пользователей и реализуем переход на предыдущую страницу по клику на кнопку:

<?php namespace AppLivewire; use LivewireComponent; use LivewireWithPagination; use AppModelsUser; class UserList extends Component { use WithPagination; public function render() { $users = User::paginate(5); return view('livewire.user-list', [ 'users' => $users ]); } } ?>
<div> <button wire:click="previousPage">Previous</button> <button wire:click="nextPage">Next</button> <ul> @foreach ($users as $user) <li>{{ $user->name }}</li> @endforeach </ul> <span>Page: {{ $users->currentPage() }}</span> </div>

Результат выполнения кода при нажатии на кнопку "Previous" со второй страницы:

<div> <button>Previous</button> <button>Next</button> <ul> <li>John Doe</li> <li>Jane Smith</li> <li>Bob Johnson</li> <li>Alice Brown</li> <li>Charlie Wilson</li> </ul> <span>Page: 1</span> </div>

Пример

Давайте используем метод previousPage внутри другого метода с дополнительной логикой:

<?php namespace AppLivewire; use LivewireComponent; use LivewireWithPagination; use AppModelsProduct; class ProductList extends Component { use WithPagination; public $currentPageDisplay = 1; public function goToPreviousPage() { $this->previousPage(); $this->currentPageDisplay = $this->getPageNumber(); } private function getPageNumber() { $products = Product::paginate(3); return $products->currentPage(); } public function render() { $products = Product::paginate(3); return view('livewire.product-list', [ 'products' => $products ]); } } ?>
<div> <button wire:click="goToPreviousPage">← Prev</button> <span>Current page: {{ $currentPageDisplay }}</span> <ul> @foreach ($products as $product) <li>{{ $product->name }} - ${{ $product->price }}</li> @endforeach </ul> </div>

Результат выполнения кода при клике на кнопку "← Prev":

<div> <button>← Prev</button> <span>Current page: 1</span> <ul> <li>Laptop - $1200</li> <li>Phone - $800</li> <li>Tablet - $500</li> </ul> </div>

Пример

Давайте добавим проверку на наличие предыдущей страницы перед вызовом метода:

<?php namespace AppLivewire; use LivewireComponent; use LivewireWithPagination; use AppModelsArticle; class ArticleList extends Component { use WithPagination; public $canGoBack = false; public function previous() { $articles = Article::paginate(4); if ($articles->currentPage() > 1) { $this->previousPage(); } $this->updateCanGoBack(); } private function updateCanGoBack() { $articles = Article::paginate(4); $this->canGoBack = $articles->currentPage() > 1; } public function render() { $articles = Article::paginate(4); $this->canGoBack = $articles->currentPage() > 1; return view('livewire.article-list', [ 'articles' => $articles ]); } } ?>
<div> @if ($canGoBack) <button wire:click="previous">Back</button> @else <button disabled>Back</button> @endif <ul> @foreach ($articles as $article) <li>{{ $article->title }}</li> @endforeach </ul> </div>

Результат выполнения кода на первой странице:

<div> <button disabled>Back</button> <ul> <li>Introduction to Laravel</li> <li>Livewire Basics</li> <li>Advanced PHP</li> <li>Database Design</li> </ul> </div>

Смотрите также

  • метод nextPage,
    который осуществляет переход на следующую страницу
  • метод resetPage,
    который сбрасывает пагинацию на первую страницу
  • метод setPage,
    который устанавливает конкретную страницу пагинации
  • класс WithPagination,
    который предоставляет методы для работы с пагинацией
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить