Метод resetPage
Метод resetPage трейта WithPagination
предназначен для сброса текущей страницы пагинации
к значению по умолчанию (обычно к первой странице).
Этот метод полезен при обновлении списка данных,
изменении фильтров или сортировки, чтобы пользователь
не оказался на несуществующей странице после обновления.
Метод не принимает параметров и ничего не возвращает. Он изменяет внутреннее состояние компонента, сбрасывая параметр страницы в URL и обновляя отображение данных.
Синтаксис
<?php
namespace AppLivewire;
use LivewireComponent;
use LivewireWithPagination;
class UserList extends Component
{
use WithPagination;
public function resetPage()
{
$this->resetPage();
}
}
?>
Пример
Давайте создадим компонент со списком пользователей и кнопкой сброса текущей страницы:
<?php
namespace AppLivewire;
use LivewireComponent;
use LivewireWithPagination;
use AppModelsUser;
class UserList extends Component
{
use WithPagination;
public function render()
{
$users = User::paginate(10);
return view('livewire.user-list', [
'users' => $users
]);
}
}
?>
<div>
<button wire:click="resetPage">
Reset page
</button>
@foreach ($users as $user)
<div>{{ $user->name }}</div>
@endforeach
{{ $users->links() }}
</div>
После нажатия на кнопку текущая страница будет сброшена на первую.
Пример
Давайте добавим поиск по имени пользователя. При изменении поискового запроса будем сбрасывать страницу, чтобы результаты поиска отображались с первой страницы:
<?php
namespace AppLivewire;
use LivewireComponent;
use LivewireWithPagination;
use AppModelsUser;
class SearchUsers extends Component
{
use WithPagination;
public $search = '';
public function updatingSearch()
{
$this->resetPage();
}
public function render()
{
$users = User::where('name', 'like', '%' . $this->search . '%')
->paginate(10);
return view('livewire.search-users', [
'users' => $users
]);
}
}
?>
<div>
<input type="text" wire:model.live="search" placeholder="Search users...">
@foreach ($users as $user)
<div>{{ $user->name }}</div>
@endforeach
{{ $users->links() }}
</div>
Теперь при каждом изменении текста в поле поиска текущая страница будет сбрасываться на первую, что гарантирует корректное отображение результатов.
Смотрите также
-
метод
setPage,
который устанавливает конкретную страницу пагинации -
метод
previousPage,
который переключает на предыдущую страницу -
метод
nextPage,
который переключает на следующую страницу -
трейт
WithPagination,
который добавляет функционал пагинации в компонент