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

Все ошибки поля в Inertia

Допустим, у заголовка записи несколько правил проверки, и человеку нужно увидеть не одну строку, а полный список замечаний сервера под полем.

По умолчанию хелпер хранит для поля одно сообщение. Метод withAllErrors просит Inertia оставить ошибки массивами. Тогда form.errors.title можно обойти в цикле и вывести каждую строку. На стороне Laravel для полного набора сообщений в ответе нужна соответствующая настройка адаптера Inertia.

Давайте опишем несколько правил для заголовка:

<?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|string|min:3|max:20', ]); return back(); }); ?>

Давайте разрешим адаптеру отдавать все строки по полю и включим режим на клиенте:

<?php class HandleInertiaRequests extends Middleware { protected $withAllErrors = true; // ... } ?>

Давайте включим все сообщения и выведем их списком:

<script setup> import { useForm } from '@inertiajs/vue3' const form = useForm({ title: '', }).withAllErrors() function submit() { form.post('/posts') } </script> <template> <form @submit.prevent="submit"> <input type="text" v-model="form.title" /> <ul v-if="form.errors.title"> <li v-for="(message, index) in form.errors.title" :key="index" > {{ message }} </li> </ul> <button type="submit">Save</button> </form> </template>

Сделайте форму работника Finn так, чтобы под полем email выводился список всех сообщений проверки, если сервер вернул несколько.

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