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

Сброс номера страницы в Livewire

Пусть человек уже листает дальнюю страницу списка и меняет строку поиска. Под новый запрос старый номер страницы не подходит: список пустеет, хотя подходящие записи есть на первой странице.

Когда меняется строка поиска, номер страницы нужно вернуть к началу. Для этого есть метод resetPage, а Livewire сам вызовет метод updatedSearch после смены свойства search.

Пусть в проекте есть модель Post с полями заголовка и текста.

Давайте создадим компонент PostBrowse:

php artisan make:livewire PostBrowse --class

Давайте добавим маршрут и страницу:

<?php Route::get('/posts', function () { return view('posts'); }); ?>
<x-layout> <livewire:post-browse /> </x-layout>

Давайте объединим поиск, постраничную выборку и сброс номера в классе:

<?php namespace App\Livewire; use App\Models\Post; use Livewire\Component; use Livewire\WithPagination; class PostBrowse extends Component { use WithPagination; public $search = ''; public function updatedSearch() { $this->resetPage(); } public function render() { $posts = Post::where( 'title', 'like', '%' . $this->search . '%' ) ->orderBy('id') ->paginate(2); return view( 'livewire.post-browse', compact('posts') ); } } ?>

Давайте в шаблоне добавим поле, список и номера страниц:

<div> <input type="text" wire:model.live="search" > @foreach ($posts as $post) <div wire:key="{{ $post->id }}"> {{ $post->title }} </div> @endforeach {{ $posts->links() }} </div>

Создайте компонент EmployeeBrowse. Когда меняется имя в поиске, список работников снова открывается с первой страницы.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить