Сохранение прежнего значения в Livewire
Давайте теперь возьмём поле заголовка поста. Человек меняет текст, и прежняя строка сразу пропадает: на странице остаётся только то, что набрано сейчас. Иногда перед подменой старое значение ещё нужно увидеть.
Перед тем как Livewire запишет
новое значение в свойство,
срабатывает метод updating.
В этот момент в свойстве ещё
лежит старый текст, его можно
скопировать куда нужно. После
записи в $title уже будет
новая строка.
Давайте создадим компонент
PostDraft:
php artisan make:livewire PostDraft --class
Давайте зададим заголовок и
пустое свойство для прошлого
текста, а в методе updating
сохраним текущий заголовок:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostDraft extends Component
{
public $title = 'News';
public $previous = '';
public function updating($property, $value)
{
$this->previous = $this->title;
}
public function render()
{
return view('livewire.post-draft');
}
}
?>
Давайте в шаблоне повесим на поле
привязку с .live, иначе
хук дождётся следующего запроса,
и под полем выведем прежний текст:
<div>
<input type="text" wire:model.live="title">
<div>{{ $previous }}</div>
</div>
Создайте компонент EmployeeName
с полем имени. Сделайте так,
чтобы перед сменой имени
на странице оставалось прежнее.