Доступ к данным vue js с помощью Axios Post Form Symfony - PullRequest
0 голосов
/ 11 декабря 2018

Привет. Я пытаюсь получить доступ к массиву данных vue.js из серверной части Symfony через axios.Это мой кодесли кто-то может помочь мне в этом. Думаю, мне нужно найти способ отправить полный массив данных в бэкэнд Я могу отправлять такие данные,

axios.post('http://localhost:81/lnt/public/member/car_result', {brand: this.brand})

Ответы [ 2 ]

0 голосов
/ 24 января 2019

У этого кода две проблемы.

1 this.data не определено

Ваши данные следующие:

{data: this.data}

И вы, вероятно, надеетесьиметь структуру

{
    data: {
        brand: 0,
        model: 0,
        country: "europe",
    }
}

Но это не работает, потому что this.data не является свойством данных экземпляра Vue.Это может показаться волшебным, но, вызывая this['property'], вы спрашиваете Vue о значении реактивного свойства data, поэтому, если вы хотите получить brand, вам нужно набрать this.brand.

2 ваши модели данных различаются на клиенте и сервере

Событие, если эта структура json будет достигнута, тогда в контроллере Symfony вы спрашиваете о

$brand = json_decode($request->getContent(), true)['brand'];

но на самом деле ваш запрос не имеет ключа бренда на первом уровне.Вам следует заменить свой внутренний код на

$brand = json_decode($request->getContent(), true)['data']['brand'];

или заменить код своего кода клиента, вставляя тело запроса как

{brand: this.brand}
0 голосов
/ 11 декабря 2018

написать код аксиоса как

 axios.post('http://localhost:81/lnt/public/member/car_result', this.data)
                            .then(function (response) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...