当前位置 : 主页 > 网络推广 > seo >

laravel-5 – Laravel 5:从$request中检索JSON数组

来源:互联网 收集:自由互联 发布时间:2021-06-16
我是一个Laravel新手,我正在将一个php / jquery应用程序转换为Laravel.原始代码使用带有ajax POST的JSON数组,检索方式如下: $json = file_get_contents('php://input');$data = json_decode($json,true); 我在POST方面
我是一个Laravel新手,我正在将一个php / jquery应用程序转换为Laravel.原始代码使用带有ajax POST的JSON数组,检索方式如下:

$json = file_get_contents('php://input');
$data = json_decode($json,true);

我在POST方面做了很多相同的事情,但是我在Laravel $请求集合中看不到任何数据.我需要做些什么特别的事情来检索这样结构化的JSON数据:

[
    { "name": "John", "location": "Boston" }, 
    { "name": "Dave", "location": "Lancaster" }
]

这是我的jQuery ajax POST代码(带有硬编码数据)

$.ajax({
    type: "POST",
    url: "/people",
    data: '[{ "name": "John", "location": "Boston" }, { "name": "Dave", "location": "Lancaster" }]',
    dataType: "json",
    success:function(data) {
        $('#save_message').html(data.message);
    } 
});

这是我的Controller中接收POST的代码

public function store(Request $request)
{
    dd($request->all());
}

但我得到的只是:

[]

关于如何检索我的数据的任何想法?

您需要将Ajax调用更改为

$.ajax({
    type: "POST",
    url: "/people",
    data: '[{ "name": "John", "location": "Boston" }, { "name": "Dave", "location": "Lancaster" }]',
    contentType: "json",
    processData: false,
    success:function(data) {
        $('#save_message').html(data.message);
    } 
});

将dataType更改为contentType并添加processData选项.

要从控制器检索JSON有效内容,请使用:

dd(json_decode($request->getContent(), true));

代替

dd($request->all());
网友评论