Проблемы обработки ошибок Laravel Jetsream Interia

Я просто катался на Jetstream / Interia и хотел оформить заказ. Итак, я создал форму с двумя полями ввода.

  • Дата начала
  • Дата окончания

У меня есть маршрут, который получает это по запросу GET и пытается его проверить. Вот так

web.php

Route::middleware(['auth:sanctum', 'verified'])->get('/asteroids', [\App\Http\Controllers\AsteroidController::class, 'index'])->name('asteroids.index');

Route::middleware(['auth:sanctum', 'verified'])->get('/asteroids/process', [\App\Http\Controllers\AsteroidController::class, 'process'])->name('asteroids.process');


<?php

namespace App\Http\Controllers;

use Inertia\Inertia;
use Illuminate\Http\Request;
use App\Http\Requests\AsteriodDateRequest;

class AsteroidController extends Controller
{
    public function index()
    {
        return Inertia::render('Asteroids/Index');
    }

    public function process(AsteriodDateRequest $request)
    {
        //
    }
}

AsteriodDateRequest
    public function rules()
    {
        return [
            'start_date' => ['required', 'date'],
            'end_date' => ['required', 'date'],
        ];
    }

Проблема, с которой я столкнулся, заключается в том, что я не могу отображать сообщения об ошибках проверки. Ниже мой код Vue Code

<jet-form-section @submitted = "submitDates">
    <template #title>
        Update Password
    </template>

    <template #description>
        Ensure your account is using a long, random password to stay secure.
    </template>

    <template #form>
        <div class = "col-span-6 sm:col-span-4">
            <jet-label for = "start_date" value = "Start Date" />
            <jet-input id = "start_date" type = "date" class = "mt-1 block w-full" v-model = "form.start_date" ref = "start_date" autocomplete = "start_date" />
            <jet-input-error :message = "form.errors.start_date" class = "mt-2" />
        </div>
        <div class = "col-span-6 sm:col-span-4">
            <jet-label for = "end_date" value = "End Date" />
            <jet-input id = "end_date" type = "date" class = "mt-1 block w-full" v-model = "form.end_date" ref = "end_date" autocomplete = "end_date" />
            <jet-input-error :message = "form.errors.end_date" class = "mt-2" />
        </div>


    </template>

    <template #actions>
        <jet-action-message :on = "form.recentlySuccessful" class = "mr-3">
            Saved.
        </jet-action-message>

        <jet-button :class = "{ 'opacity-25': form.processing }" :disabled = "form.processing">
            Save
        </jet-button>
    </template>
</jet-form-section>

<script>
import JetActionMessage from '@/Jetstream/ActionMessage'
import JetButton from '@/Jetstream/Button'
import JetFormSection from '@/Jetstream/FormSection'
import JetInput from '@/Jetstream/Input'
import JetInputError from '@/Jetstream/InputError'
import JetLabel from '@/Jetstream/Label'

export default {
    components: {
        JetActionMessage,
        JetButton,
        JetFormSection,
        JetInput,
        JetInputError,
        JetLabel,
    },

    data() {
        return {
            form: this.$inertia.form({
                start_date: '',
                end_date: '',
            }),
        }
    },
    methods: {
        submitDates() {
            this.form.get(route('asteroids.process'), {
                errorBag: 'submitDates',
                preserveScroll: true,
                onSuccess: () => this.form.reset(),
                
            })
        },
    },
}
</script>

here is the [![Screenshot][1]][1] of the response. Please let me know what I am doing wrong here.


  [1]: https://i.stack.imgur.com/diaf4.png
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
22
1

Ответы 1

Я не эксперт по инерции, но похоже, что ваш объект form.errors пуст (см. Верхнюю часть снимка экрана). В документации по инерции указано, что это только ошибки. * вместо form.errors. *, Поэтому, возможно, попробуйте заменить соответствующие строки. В противном случае я считаю, что существует обратный вызов onError: errors => {}, где вы могли бы заполнить объект form.errors. *.

        submitDates() {
            this.form.get(route('asteroids.process'), {
                errorBag: 'submitDates',
                preserveScroll: true,
                onSuccess: () => this.form.reset(),
                onError: errors => { this.form.errors = errors; }, // maybe something like this works?
            })
        },

Другие вопросы по теме