Восстановление из снимка в Livewire
Пусть на странице поста
есть поле заголовка.
После каждого запроса
свойства уже вернулись
из снимка, но подправить
строку до отрисовки
негде: в render поздно,
а в методе кнопки правка
не успеет попасть в каждый
ответ подряд.
Метод hydrate вызывается
сразу после восстановления
состояния компонента
из снимка и до отрисовки.
Здесь удобно нормализовать
поля, которые не должны
лежать в браузере в сыром
виде, но нужны на экране.
Страница откроется
по адресу /posts/back.
Давайте создадим компонент
PostBack:
php artisan make:livewire PostBack --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/back', function () {
return view('posts-back');
});
?>
<x-layout>
<livewire:post-back />
</x-layout>
Давайте заведём поле заголовка и допишем знак в методе hydrate, если строка не пустая:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostBack extends Component
{
public $title = '';
public function hydrate()
{
if ($this->title !== '') {
$this->title .= '!';
}
}
public function render()
{
return view('livewire.post-back');
}
}
?>
Давайте свяжем поле с заголовком в шаблоне:
<div>
<input
type="text"
wire:model.live="title"
>
{{ $title }}
</div>
Создайте компонент EmployeeBack.
После каждого запроса к имени
работника дописывается
восклицательный знак.