Axios Post и стоимость реквизита - PullRequest
0 голосов
/ 16 января 2019

У меня небольшая проблема с моим компонентом Laravel / Vue. Я попытался сделать компонент формы, в котором вы можете просто определить путь и категорию как статические переменные. Теперь я хочу получить доступ к нему в axios.post, но он не работает:

create.blade.php (бэкэнд-сайт для создания чего-либо)

   <!DOCTYPE html>
<html lang="en">
@include('includes.header')
<body>
    <div id="app" class="wrapper">
        <nav-component></nav-component>
        <form-component kategorie ='achievement' senden='/achievement'></form-component>
    </div>
    <script src="/js/app.js"></script>
</body>
</html>

И Vue Component для формы-компонента:

export default {
    props: ['kategorie', 'senden'],

    data: function() {
        return {
        title: '',
        description: '',
        text: '',
        category: this.kategorie,
        errors: new Errors()
        }
    },

    methods: {
        onSubmit() {
            axios.post({data:this.senden}, {
                title: this.title,
                description: this.description,
                text: this.text,
                category: this.category

            })
                .then(this.onSuccess)
                .catch(error => this.errors.record(error.response.data.errors));
        },
        onSuccess(response) {

            alert(response.data.message);

            this.title = '';
            this.description = '';
            this.text = '';
        }
    },

    http:{
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    }
}

Класс ошибок, который содержит hasOwnProperty

 class Errors {
        constructor() {
            this.errors = {}
        }
        get(field) {

            if (this.errors[field]) {
                return this.errors[field][0];
            }

        }

        record(errors) {
            this.errors = errors;
        }

        clear(field) {
            delete this.errors[field];
        }

        has(field) {
            return this.errors.hasOwnProperty(field);
        }

        any() {
            return Object.keys(this.errors).length > 0;
        }
    }

Laravel Controller store

$this->validate(request(), [
            'title' => 'required',
            'description' => 'required',
            'text' => 'required',
            'category' => 'required'
        ]);

        Achievement::forceCreate([
            'title' => request('title'),
            'description' => request('description'),
            'text' => request('text'),
            'category' => request('category')
        ]);

        return ['message' => 'Erfolg erstellt'];

Как я мог сделать это правильно? Как это плохо получить 405 (метод не разрешен) и ошибка при рендеринге: «TypeError: не удается прочитать свойство 'hasOwnProperty' неопределенного" ошибка

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