Laravel: Ax ios не сохраняет данные на странице редактирования - PullRequest
0 голосов
/ 05 марта 2020

Я создаю страницу редактирования для редактирования данных. После того, как пользователь отредактирует форму. Форма должна быть сохранена. Но в моем случае я не могу сохранить форму, она показывает ошибку. enter image description here Я столкнулся с этой ошибкой.

ReminderComponent. vue

<script>
    import Vue from 'vue'
    import axios from 'axios'
    import VueAxios from 'vue-axios' 
    import MarkdownIt from 'markdown-it'
    import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
    var msg_editor;
    Vue.use(VueAxios, axios);


    const md = new MarkdownIt({
        linkify: true
    })

  export default {
    props: ['email_creation_link', 'email_index_route', 'email_edit_route','conditions','modules','mailtemplates'],

    components: {


    },


    data() {
        return {
            template: 
             {
                subject: '',
                message: '' ,
                days: '',
                condition_id: 1,

            },
            options:[
                {
                    display:'Client Name',
                    actual:'Client name'
                }, 
                {
                    display:'Joined Date',
                    actual:'Joined date'
                },
                {
                    display:'Module Name',
                    actual:'Module name'
                },
                {
                    display:'Last Seen',
                    actual:'Last seen'
                },
            ],


              showName: false,


        }
    },


    mounted(){
            var self = this;

            ClassicEditor
            .create(document.querySelector( "#msg"),
                {
                })
            .then(editor => {
                msg_editor = editor;
                editor.model.document.on( 'change:data', () => {
                    self.template.message = msg_editor.getData();
                });
            })

            .catch(error => {
                console.error(error);
            })


            if (this.mailtemplates) {
                    this.template=this.mailtemplates;
            }



        }, 

    methods: {

        //Drag items
        dragstart: function(item, e){
            this.draggingItem = item;
            e.dataTransfer.setData('text/plain', item.actual);
        },
        dragend: function(item,e) {
            e.target.style.opacity = 1;
        },
        dragenter: function(item, e) {
            this.draggingItem = item;
        },
        //content
        replaceVariables(input)
        {
            let updated = input
            return updated
        },
        //hidecontent
        showHide: function(e)
        {
            console.log("Show "+e.target.value+ " fields")
            this.showName = e.target.value !== ''
        },
        fetch()
        {
            //request data
            axios.get(this.email_index_route,this.template)
                .then((res) => {
                    this.template = res.data.template;

                })
            **axios.get(this.email_edit_route,this.mailtemplates)
                .then((res) => {
                    this.mailtemplates = res.data.template;

                })**
        },
        save()
        {
            //save data to db
            axios.post(this.email_index_route, this.template)
                .then((res) => {
                    alert('Mail sent successfull!')
                })
            **axios.post(this.email_edit_route, this.mailtemplates)
                .then((res) => {
                    alert('Mail sent successfull!')
                })**
        },
        addToMail: function(type, text)
        {
            if (type == 'message') {
                this.template.message += text;
                msg_editor.setData(this.template.message);
            }
        },

        //user name replace
        replaceVariables() {
            return this.replaceVariables(this.options || '')
        },
    }
  }
</script>

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

axios.get(this.email_edit_route,this.mailtemplates)
   .then((res) => {
      this.mailtemplates = res.data.template;

      })

axios.post(this.email_edit_route, this.mailtemplates)
      .then((res) => {
          alert('Mail sent successfull!')
 })

файл маршрута

Route::get('api/email/create', ['as' => 'email.create', 'uses' => 'Havence\AutoMailController@create']);
    Route::get('automail/mail', 'Havence\AutoMailController@mail');
    Route::get('automail/index',['as'=>'email.index','uses' => 'Havence\AutoMailController@index']);
    Route::post('automail/edit/{id}',['as'=>'email.edit','uses' => 'Havence\AutoMailController@edit']);
    Route::get('automail/delete',['as'=>'email.delete','uses' => 'Havence\AutoMailController@destroy']);

Я продолжал искать это, но не мог найти ответ, который прояснит это.

Спасибо!

1 Ответ

0 голосов
/ 05 марта 2020

В соответствии с вашей ошибкой и вашим файлом маршрута вы используете метод POST на своей странице edit, но ваш метод редактирования принимает только метод GET, поэтому вы получаете эту ошибку. enter image description here

Я получаю эту ошибку

...