Метод nextPage
Метод nextPage класса WithPagination
используется для перехода на следующую страницу
в постраничной навигации Livewire.
Он увеличивает значение свойства page на единицу,
после чего компонент автоматически перерисовывается
с новыми данными для текущей страницы.
Метод не принимает параметров и не возвращает значения.
Синтаксис
<?php
use Livewire\WithPagination;
class Users extends Component
{
use WithPagination;
public function goNext()
{
$this->nextPage();
}
}
?>
Пример
Давайте выведем список пользователей с кнопкой для перехода на следующую страницу:
<?php
namespace App\Livewire;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\User;
class Users extends Component
{
use WithPagination;
public function render()
{
$users = User::paginate(3);
return view('livewire.users', [
'users' => $users
]);
}
}
?>
<div>
@foreach ($users as $user)
<p>{{ $user->name }}</p>
@endforeach
<button wire:click="nextPage">
Next page
</button>
</div>
Результат выполнения кода:
<div>
<p>John Doe</p>
<p>Jane Smith</p>
<p>Bob Johnson</p>
<button>
Next page
</button>
</div>
Пример
Давайте добавим отображение текущей страницы и кнопки навигации:
<?php
namespace App\Livewire;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Post;
class Posts extends Component
{
use WithPagination;
public function render()
{
$posts = Post::paginate(2);
return view('livewire.posts', [
'posts' => $posts
]);
}
}
?>
<div>
<p>Page: {{ $posts->currentPage() }}</p>
@foreach ($posts as $post)
<p>{{ $post->title }}</p>
@endforeach
<button wire:click="previousPage">
Previous
</button>
<button wire:click="nextPage">
Next
</button>
</div>
Результат выполнения кода при нажатии на кнопку "Next":
<div>
<p>Page: 2</p>
<p>Post 3</p>
<p>Post 4</p>
<button>
Previous
</button>
<button>
Next
</button>
</div>
Пример
Метод nextPage можно вызывать с помощью
директивы wire:click без посредников:
<?php
namespace App\Livewire;
use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Product;
class Products extends Component
{
use WithPagination;
public function render()
{
$products = Product::paginate(4);
return view('livewire.products', [
'products' => $products
]);
}
}
?>
<div>
<ul>
@foreach ($products as $product)
<li>{{ $product->name }}</li>
@endforeach
</ul>
<button wire:click="nextPage">
Next
</button>
</div>
Результат выполнения кода после клика на кнопку:
<div>
<ul>
<li>Product 5</li>
<li>Product 6</li>
<li>Product 7</li>
<li>Product 8</li>
</ul>
<button>
Next
</button>
</div>
Смотрите также
-
метод
previousPage,
который переключает пагинацию на предыдущую страницу -
метод
resetPage,
который сбрасывает пагинацию на первую страницу -
метод
setPage,
который устанавливает конкретную страницу -
класс
WithoutUrlPagination,
который отключает синхронизацию пагинации с URL