Vue Компонент формы в Laravel получая 422 ошибку при отправке - PullRequest
0 голосов
/ 31 марта 2020

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

Компонент формы:

<template>
<form @submit.prevent="mail" method="POST">

</form>
</template>
<script>
import FormMixin from '../FormMixin';

export default {
  mixins: [ FormMixin ],
  data() {
    return {
      'action': 'submit',
    }
  }
}
</script>

Форма Mixin

export default {
  data() {
    return {
      fields: {},
      errors: {},
      success: false,
      loaded: true,
      action: '',
    }
  },

  methods: {

    mail() {
      if (this.loaded) {
        this.loaded = false;
        this.success = false;
        this.errors = {};
        axios.post(this.action, this.fields).then(response => {
          this.fields = {}; //Clear input fields.
          this.loaded = true;
          this.success = true;
        }).catch(error => {
          this.loaded = true;
          if (error.response.status === 422) {
            this.errors = error.response.data.errors || {};
          }
        });
      }
    },

  },
}

Контроллер

 public function mail(NewConctactRequest $contact) {
    	
    	Mail::to('example@example.com')->send(new NewContact($contact));

    	return redirect()->route('thank you');

    	return response()->json(null, 200);

    }

Веб-маршруты

Route::get('/home', 'HomeController@index')->name('home');
Route::get('adventures', 'PageController@adventures')->name('adventures');
Route::get('crew', 'PageController@crew')->name('crew');
Route::get('events', 'PageController@events')->name('events');
Route::get('gallery', 'PageController@gallery')->name('gallery');
Route::get('thank_you', 'PageController@thank_you')->name('thank you');
Route::get('contact', 'ContactController@show')->name('contact');
Route::post('submit', 'ContactController@mail')->name('mail contact');

У меня уже установлен Ax ios, а токен CSRF установлен в заголовке документа. Когда я использую форму как стандартную форму (не используя Vue), она отправляется правильно.

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