Свойство в сессии в Livewire
Давайте рассмотрим ситуацию, когда человек ввёл строку поиска постов и обновил страницу. Поле опустело, хотя человек уже нашёл нужный текст.
Атрибут Session связывает свойство компонента с сессией Laravel: значение переживает обновление вкладки и возвращается в компонент при следующем запросе.
Давайте создадим компонент
PostFind:
php artisan make:livewire PostFind --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/find', function () {
return view('posts-find');
});
?>
<x-layout>
<livewire:post-find />
</x-layout>
Давайте пометим поле поиска атрибутом Session:
<?php
namespace App\Livewire;
use Livewire\Attributes\Session;
use Livewire\Component;
class PostFind extends Component
{
#[Session]
public $search = '';
public function render()
{
return view('livewire.post-find');
}
}
?>
Давайте свяжем поле с свойством
через wire:model.live,
чтобы строка менялась по мере
ввода, и покажем её в шаблоне:
<div>
<input
type="text"
wire:model.live="search"
>
<div>{{ $search }}</div>
</div>
Создайте компонент EmployeeFind.
Строка поиска работника
остаётся после обновления
страницы.