Laravel根据请求接收数组

时间:2018-09-09 06:05:30

标签: javascript php arrays ajax laravel

在javascript中,我这样做:

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

然后,在Laravel中,我收到了它:

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

但是,我在var_dump中总是收到null!为什么会这样?

2 个答案:

答案 0 :(得分:2)

您不需要使用JSON.stringify。 Axios自行完成。

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

要处理POST负载,请在Laravel中使用$request->input()

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

为清楚起见:问题不在服务器端。您在那里正确完成了所有操作,可以使用$request->topCategories从POST有效负载中检索数据。但是ajax有效负载的构建不正确。

答案 1 :(得分:0)

检查一下。希望这对您有所帮助。

https://github.com/axios/axios/issues/1440#issuecomment-379355382