Как получить данные Array из Object внутри Vuejs - PullRequest
0 голосов
/ 11 декабря 2019

В моем проекте я использую Vue.js и Laravel. У меня есть форма динамического поля, которая проверяется Laravel end. но когда я получаю сообщение проверки через axios, я не могу отделить его от ответа.

Вот мой код Laravel.

      $this->validate($request,[
            'requested_by' => 'required',
            'requested_date' => 'required',
            'issued_by' => 'required',
            'supplier' => 'required',
            'data.*.product' => 'required',
            'data.*.quantity' => 'required',
            'data.*.unit' => 'required',
            'data.*.unit_price' => 'required',
        ]);

Код Vue для запроса axios-

  axios.post('/api/requisition',{
              'data' : this.inputs,
              'requested_by': this.form.request_by,
              'requested_date': this.form.request_date,
              'issued_by': this.form.issue_by,
              'supplier': this.form.supplier,})
          .then(response => {
              console.log(response)
          })
          .catch(err => {
              this.allerrors =  err.response.data.errors
              console.log(this.allerrors)

          })

В своем ответе я получаю изображение наподобие вывода:

enter image description here

Как я могу уничтожить его изэтот формат для каждого индекса динамической формы, есть ли решения, чтобы что-то сделать.

Ответы [ 2 ]

1 голос
/ 11 декабря 2019

Мне очень нравится ответ Лодаша, если честно. Но так как это было весело делать. Вот пример без кода.

const res = {
  "data.0.name": "Bob",
  "data.0.gender": "Male",
  "data.0.age": 27,
  "data.1.name": "Kelly",
  "data.1.gender": "Female",
  "data.1.age": 24,
  "issuedBy: "Morty",
  "requestedBy": "Rick"
};

const output = [];

Object.keys(res)
  .filter(key => /data/.test(key))
  .forEach(key => {
    const [index, prop] = key.replace('data.', '').split('.');
    if (!output[index]) {
      output[index] = {};
    }
    output[index][prop] = res[key]
  });

console.log(output);
0 голосов
/ 11 декабря 2019

Это грубо, но вы можете подумать об объекте, чтобы получить ключи и реструктурировать его, как вам угодно, есть несколько способов сделать это, но что-то вроде:

import _ from "lodash"

function transformData(data) {
  return Object.entries(data).reduce((obj, [k,v]) => _.set(obj, k, v), {})
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...