Laravel получает массив как запрос - PullRequest
0 голосов
/ 09 сентября 2018

В JavaScript я делаю:

axios.post('/api/categories', {
   topCategories: JSON.stringify({ data: ['a', 'b', 'c', 'd', 'e'] })
})

Затем, в Ларавеле, я получаю это:

protected function getCategories(Request $request) {
    $topCategories = $request->topCategories;
    var_dump(json_decode($topCategories));
}

Однако я всегда получаю ноль в var_dump! Почему это происходит?

Ответы [ 2 ]

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

Вам не нужно использовать JSON.stringify. Аксиос делает это сам.

axios.post('/api/categories', {
   topCategories: ['a', 'b', 'c', 'd', 'e']
})

А для обработки полезной нагрузки POST используйте $request->input() в Laravel.

protected function getCategories(Request $request) {
    $topCategories = $request->input('topCategories');
    dd($topCategories);
}

Для ясности: проблема не на стороне сервера. Там вы все делаете правильно, и вы можете использовать $request->topCategories для извлечения данных из полезной нагрузки POST. Но полезная нагрузка ajax построена неправильно.

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

Проверьте это. Надеюсь, это поможет вам.

https://github.com/axios/axios/issues/1440#issuecomment-379355382
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...