Функция Vuejs с несколькими данными - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть две таблицы данных в приложении VUE.

  • Наличные [код, описание, наличные]
  • Загрузить [банк, id]

Для функции обновления мне нужно взять [банк, id] из загрузки и [наличные] из наличных. я не знаю как, может кто-нибудь помочь, пожалуйста? Спасибо. Это мой код

Это мои vuejs

var app = new Vue({
    el: '#app',
    data: {
        cash: {
            codeentry: '',
            description: '',
            cash: '',
        },
        upload: {
            bank: '',
            id: '',
        },
    },
    methods: {
        updateBank: function () {
            axios.put('/updatebank', this.upload, this.cash)
                .then(response => {
                    if (response.data.etat) {
                        this.upload.id = response.data.etat.id
                        this.upload.bank = response.data.etat.bank
                        this.cash.cash = response.data.etat.cash

                    }

                })
                .catch(error => {
                    console.log('errors: ', error)
                })
        },
    }
});

Мой маршрут:

Route::put('/updatebank', 'CoinController@updateBank');

Контроллер:

public function updateBank(Request $request)
{
    $coin = Coin::findOrFail($request->id);
    $coin->bank = ($request->bank - $request->cash);
    $coin->save();
}

Когда я выполняю свою функцию и вижу отчет. Только this.upload учитывается.

1 Ответ

0 голосов
/ 13 сентября 2018

Если вы хотите, чтобы эти два объекта были в одном объекте, вы можете создать новый объект из двух объектов

Es6 Пример:

            const {bank,id} = this.upload;
            const {cash} = this.cash;
            const my_data = {
                bank, id, cash
            }

Более старый пример Js

            var my_data = {
                cash: this.cash.cash,
                bank: this.upload.bank,
                id: this.upload.id,
            }

В противном случае, если вы хотите, чтобы оба запроса были представлены в виде отдельных объектов, оберните их вокруг {}

            var my_data = {
                upload: this.upload,
                cash: this.cash
            }

Наконец:

            axios.put('/updatebank', my_data)
                ...

Обновите: Похоже, вы не хотите объединять эти объекты в разные подобъекты, поэтому ваш метод updateBank будет выглядеть так:

    updateBank: function () {
        const my_data = {
            cash: this.cash.cash,
            bank: this.upload.bank,
            id: this.upload.id,
        };

        axios.put('/updatebank', my_data)
            .then(response => {
                if (response.data.etat) {
                    this.upload.id = response.data.etat.id
                    this.upload.bank = response.data.etat.bank
                    this.cash.cash = response.data.etat.cash

                }

            })
            .catch(error => {
                console.log('errors: ', error)
            });
    }

Являетесь ли вы сторонним наблюдением?уверен, что this в ответе ссылается на ваш объект Vue?

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