laravel 5.5使用嵌套对象处理请求

时间:2018-02-19 16:38:20

标签: javascript php json httprequest laravel-5.5

我目前正在开发一个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"
]

如您所见,嵌套对象位置不存在,嵌套对象 stats 现在有一个空字符串作为属性名称。我不确定我做错了什么,或者Laravel不支持嵌套对象?请有人在这个问题上给我启发。 THX

1 个答案:

答案 0 :(得分:0)

好的,我想出了问题, @James thx对你的关注!你说的是帮我找到问题的。你说“我怀疑Laravel正在破坏收到的数据。”你是对的。我实际上正在使用一个转换请求数据属性名称的中间件,并且这个中间件是在路由中设置的,因此我完全错过了它并忘了它。这有点尴尬^^谢谢你的帮助!