Признак изменений в Inertia
Давайте рассмотрим ситуацию, когда человек правит черновик записи и должен видеть, остались ли несохранённые правки. Сравнивать поля вручную неудобно, особенно если их несколько.
У хелпера есть свойство
isDirty: оно становится
истинным, когда текущие значения
полей расходятся с умолчаниями
формы. Его выводят в шаблоне
как короткую подсказку
или предупреждение перед
уходом со страницы.
Давайте опишем адрес формы и приём полей:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::get('/posts/create', function () {
return Inertia::render('Posts/Create');
});
Route::post('/posts', function (Request $request) {
return back();
});
?>
Давайте добавим надпись о несохранённых изменениях:
<script setup>
import { useForm } from '@inertiajs/vue3'
const form = useForm({
title: 'News',
})
function submit() {
form.post('/posts')
}
</script>
<template>
<form @submit.prevent="submit">
<p v-if="form.isDirty">
Unsaved changes
</p>
<input
type="text"
v-model="form.title"
/>
<button type="submit">Save</button>
</form>
</template>
На форме работника Ivan показывайте, что правки ещё не сохранены, пока имя отличается от начального.