Новые значения по умолчанию в Inertia
Давайте теперь сохраним заголовок записи и продолжить редактирование на той же странице. После удачного ответа текущий текст должен считаться новой отправной точкой: кнопка сброса вернёт уже сохранённый вариант, а не пустую строку с первого захода.
Метод defaults у хелпера
запоминает текущие значения
полей как новые умолчания.
Следующий вызов reset
вернёт именно их, а свойство
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: '',
})
function submit() {
form.post('/posts', {
onSuccess: () => form.defaults(),
})
}
</script>
<template>
<form @submit.prevent="submit">
<input
type="text"
v-model="form.title"
/>
<button type="submit">Save</button>
<button type="button" @click="form.reset()">
Reset
</button>
</form>
</template>
Сделайте форму работника Kate: после удачного сохранения текущее имя становится новой базой для сброса.