РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppinSpEvOk 87 of 112 menu
◀ ▶

Успех запроса в Inertia

Давайте теперь после сохранения поста нужно один раз записать в журнал на клиенте, что ответ пришёл без ошибок проверки. Делать это в колбэке каждой формы долго, а часть переходов идёт только через Link.

Событие success вызывается при удачном визите на страницу, если Laravel не вернул ошибки проверки в пропсах. Оно не срабатывает при восстановлении экрана из истории браузера без нового запроса - для смены адреса в таких случаях есть отдельное событие navigate. В обработчике доступен объект страницы с текущим адресом.

Давайте примем заголовок и вернём на форму:

<?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) { $request->validate([ 'title' => 'required', ]); return back(); }); ?>

Давайте накопим короткие записи журнала в общем массиве и подпишемся на success:

import { router } from '@inertiajs/vue3' import { ref } from 'vue' export const visitLog = ref([]) router.on('success', (event) => { visitLog.value.push( 'OK ' + event.detail.page.url, ) })

Давайте отправим форму и выведем последние строки журнала:

<script setup> import { Form } from '@inertiajs/vue3' import { visitLog } from '../../app.js' </script> <template> <h1>New post</h1> <Form action="/posts" method="post"> <input type="text" name="title" /> <button type="submit">Save</button> </Form> <ul> <li v-for="(line, index) in visitLog" :key="index" > {{ line }} </li> </ul> </template>

Сделайте сохранение отдела работника Leo так, чтобы удачный ответ Inertia без ошибок проверки добавлял одну строку в общий журнал на клиенте.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить