Отправка формы в Inertia
Давайте изучим компонент
Form. Это форма
внутри приложения Inertia.
Обычный тег формы при отправке
скачивает новый документ.
Form перехватывает
отправку: клиент сам относит
поля на адрес из action
методом из method,
а открытый документ
остаётся на месте.
На сервере контроллер читает
запрос и возвращает человека
назад на ту же страницу
методом back.
Экран снова рисуется
внутри того же приложения,
без полной перезагрузки сайта.
Давайте опишем адрес создания записи и приём отправленных полей:
<?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 { Form } from '@inertiajs/vue3'
</script>
<template>
<Form action="/posts" method="post">
<input type="text" name="title" />
<button type="submit">Save</button>
</Form>
</template>
Сделайте форму работника с полем имени так, чтобы отправка не скачивала документ заново и возвращала на ту же страницу.