【发布时间】:2018-07-29 22:35:28
【问题描述】:
我目前正在开发一个 Laravel 5.5 项目,但我对特定的 json 请求有一个奇怪的行为。
我的json:
{
first_name:"MYFIRSTNAME",
last_name:"MYLASTNAME",
location:{
data: {
address:"3 something street",
postal_code:"42000",
lng_lat:"-1.8263223,43.2150621"
}
},
profile_picture:"http://linktoprofilepic.jpg",
stats:{
data: {
stat1:335,
stat2:312,
stat3:32
}
},
verification_text:"#trend"
}
所以我将上述 JSON 作为 PUT 请求发送到我的控制器,目前没有任何验证规则。在我的控制器中使用 Laravel 的调试功能 dd( $request->all() ) 进行调试时,我得到以下信息:
array:5 [
"first_name" => "MYFIRSTNAME"
"last_name" => "MYLASTNAME"
"profile_picture" => "http:linktoprofilepic.jpg"
"" => array:1 [
"data" => array:3 [
"stat1" => 335
"stat2" => 312
"stat3" => 32
]
]
"verification_text" => "#trend"
]
如您所见,嵌套对象 location 不存在,嵌套对象 stats 现在有一个空字符串作为属性名称。我不确定我做错了什么还是 Laravel 不支持嵌套对象?请有人在这个问题上启发我。谢谢
【问题讨论】:
-
我怀疑 Laravel 正在破坏它收到的数据。那么,您如何发送它以及如何构建对象?您是否检查了您的浏览器开发工具以监控 http 请求并确保您发送的数据是您在上面发布的?
-
dd($request->json()->all());工作吗? -
不,我得到了相同的结果.. 我刚刚注意到财产文件也丢失了
-
另外,如果这可能有助于理解,当我尝试像这样将我的 json 嵌套在 data 属性中时:{ data : json } 我得到这个作为响应:link 数据属性名称变为空字符串跨度>
标签: javascript php json httprequest laravel-5.5