Почему при сохранении данных в Laravel в методе не допускается ошибка? - PullRequest
0 голосов
/ 09 февраля 2020

В моем приложении я получаю сообщение об ошибке, не разрешенное при попытке сохранить данные. Я публикую здесь свои коды, пожалуйста, кто-нибудь заглянет в это и поможет мне.

HolidayAdd. vue

<template>
    <layout>
        <form @submit.prevent="handleSubmit">
            <div class="input-group">
                <div class="input-group-prepend">
                    <span for="name" class="input-group-text">First Name and Last Name </span>
                </div>
                <input type="text" class="form-control" name="firstname" placeholder="Enter your First Name" v-model="holiday.fname" id="fname">
                <input type="text" class="form-control" name="lastname" placeholder="Enter your Last Name" v-model="holiday.lname" id="lname">
            </div>
            <br>
            <div class="input-group">
                <div class="input-group-prepend">
                    <span class="input-group-text">Start Date </span>
                </div>
                <input type="date" class="form-control" name="startdate" v-model="holiday.sdate" id="sdate">
            </div>
            <br>
            <div class="input-group">
                <div class="input-group-prepend">
                    <span class="input-group-text">End Date</span>
                </div>
                <input type="date" class="form-control" name="enddate" v-model="holiday.edate" id="edate">
            </div>
            <br>
            <button type="submit" class="btn btn-info">Apply</button>
        </form>
    </layout>
</template>

<script>
import Layout from './../../Shared/Layout'
export default {
    components: {
        Layout
    },
    data() {
        return {
            holiday: {
                fname: '',
                lname: '',
                sdate: '',
                edate: ''
            }
        }
    },
    methods: {
        async handleSubmit() {
            let response = await this.$inertia.post('/holiday/store', this.holiday)
        }
    }
}
</script>

HolidayController. php

public function store(Request $request)
    {

        $holiday = $request->validate([
            'firstname' => 'required',
            'lastname' => 'required',
            'startdate' => 'required',
            'enddate' => 'required'
        ]);

        Holiday::create($holiday);

        return redirect()->route('holiday.index')->with('success', 'Record Inserted Successfully');
    }

web . php

Route::resource('holiday', 'HolidayController');

Насколько я знаю, ошибки нет, тогда почему я получаю ошибку 405 здесь?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2020

В вашем Vue коде вы должны использовать POST-запрос к '/holiday' вместо '/holiday/store'.

Определение маршрута ресурса эквивалентно:

Route::get('/holiday', 'HolidayController@index');
Route::get('/holiday/create', 'HolidayController@create');
Route::post('/holiday', 'HolidayController@store');
Route::get('/holiday/{holiday}', 'HolidayController@show');
Route::get('/holiday/{holiday}/edit', 'HolidayController@edit');
Route::put('/holiday/{holiday}', 'HolidayController@update');
Route::patch('/holiday/{holiday}', 'HolidayController@update');
Route::delete('/holiday/{holiday}', 'HolidayController@destroy');

https://laravel.com/docs/5.8/controllers#resource -controllers

2 голосов
/ 09 февраля 2020

Ваш URL '/holiday/store' доза не очень Route::resource('holiday', 'HolidayController');

Исправление

await this.$inertia.post('holiday', this.holiday)

Для проверки маршрутов и соответствующих им URI

Выполните следующую команду

php artisan route:list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...