Отправляю на серв данные c помощью axios в JSON. Форма генериться с помощью VueJS.
axios.post(this.form.action, this.form.model) ну и т.д.
В this.form.model у меня значения полей формы в виде key => value.
{"props[color]":[110,109],"props[size]":[113]}
При отправке на сервере получаю
["props[color]"]=>
array(2) {
[0]=>
int(109)
[1]=>
int(108)
}
["props[size]"]=>
array(1) {
[0]=>
int(113)
}
Как можно получить вид
[
'props' => [
'color' => [],
'size' => []
]
]
Т.е. на клиенте при отправке мне нужно чтобы вместо
{"props[color]":[110,109],"props[size]":[113]}
было
{props: {color: [110,109], size: [113]}}
Пробовал распарсить с помощю регулярки ключи, но банально не хватает знаний как это сделать правильно.
let dataKeys = {};
let keyRegex = /[^\[\]]+|\[\]/g;
const reducer = (accumulator, currentValue) => {
dataKeys[accumulator] = [currentValue]
};
Object.keys(this.form.model).map(key => {
console.log(key.match(keyRegex).reduce(reducer))
});
console.log(dataKeys); // {"props":["size"]}
П.c.: возможно есть вариант проще как скормить название модели вроде props[color] VueJS которое он сам распарсит правильно.
{"props":{"color":[110,109],"size":[113]}}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости