当前位置: 首页 > 知识库问答 >
问题:

Laravel 5:从$request检索JSON数组

水品
2023-03-14

我是一个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);
    } 
});

这是我的控制器中接收POST的代码

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

但我得到的只有:

[]

有什么想法我可以撤回我的数据吗?

共有3个答案

赫连瑾瑜
2023-03-14

只需提及jQuery v3.2.1和Laravel 5.6。

案例1:JS对象直接发布,比如:

$.post("url", {name:'John'}, function( data ) {
});

对应的Laravel PHP代码应该是:

parse_str($request->getContent(),$data); //JSON will be parsed to object $data

案例2:发布的JSON字符串,如:

$.post("url", JSON.stringify({name:'John'}), function( data ) {
});

对应的Laravel PHP代码应该是:

$data = json_decode($request->getContent(), true);
唐兴发
2023-03-14
 $postbody='';
 // Check for presence of a body in the request
 if (count($request->json()->all())) {
     $postbody = $request->json()->all();
 }

这就是现在在laravel 5.2中的实现方式。

仲法
2023-03-14

你需要把你的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());
 类似资料:
  • 问题内容: 我有这个数组: 并且我正在寻找一个PHP“ for each”循环,该循环将检索下的键名,即: 我怎样才能做到这一点? 问题答案: 试试吧 在$ key中,您将获得密钥名称,在val中,您将获得值

  • 问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,

  • 我有一个用Java编写的管理应用程序,可以管理我的用户 我创建了一个自定义json 这就是我的JSON看起来的样子 在我的列表中,我只显示电子邮件地址 现在我的问题,例如,如果我单击包含电子邮件的列表,我想在对话框中显示与此电子邮件相关的数据,即、和 怎样​​我可以检索其他值吗​​使用电子邮件? 我在网上找不到任何关于它的信息

  • 我是JSON的新手。我想使用JSON检索两个地方之间的距离。我想从位于“legs”数组中的“Distance”对象获取“text”(距离b/w两个地方),而“legs”数组又位于“routes”数组中。链接(http://maps.googleapis.com/maps/api/directions/json?origin=adoor&destination=thiruvananthapuram%

  • 问题内容: 我的手机APP以文本模式完美下载内容。下面是执行此操作的代码。我将其称为Communicator类和exectueHttpGet: 我要讲的是(URL的源代码): 该响应是一个字符串。在服务器上,它作为JSON对象输出(与PHP一起),现在在我的Android PHP中,我想将此字符串转换为JSON。这可能吗? 问题答案: 您收到的是从附加到a 并最终转换为的一系列字符-因此,结果是可

  • 问题内容: 我在从Java servlet内的JavaScript检索以JSON形式发送的数据时遇到查询。以下是我在做什么… 这是JavaScript内向Servlet发出请求的代码的一部分 在发出此请求时,我尝试检索从Servlet中的JavaScript发送的参数,但这样做时,我首先对如何从请求中检索数据感到困惑 我在servlet中使用了以下内容: 注意: 我的Servlet中的内容类型设置