Laravel从JSON创建雄辩的对象

时间:2018-02-07 20:01:49

标签: php json laravel eloquent

我在客户端有这个JSON对象:

enter image description here

我将ajax JSON对象发送到Controller,如:

$.ajax({
           type: "GET",
           url: url,
           data: {sToken: token.id, reference: r, newserials: jsonObj},
           dataType: "json",
           success: function(data)
           { ... ... etc.

然后在控制器我抓住它:

$newserials = $request->newserials;

我现在需要的是将$newserials转换为雄辩的对象,因此我想使用$newserials之类的:

foreach ($newserials as $new) {

$serial = $new->serial;
$pin = $new->pin;

}

那么我如何将JSON转换为雄辩并以上述方式使用?

该应用程序是实时的,我无法测试这就是为什么我要求帮助解决这些微不足道的问题。对不起。

更新: 我将newserial作为字符串发送:

var newserials = JSON.stringify(jsonObj);

其余代码如你所知:

$newserials = json_decode(json_encode($request->newserials));

但现在我收到了错误:

尝试在foreach循环中获取非对象的属性!

enter image description here

1 个答案:

答案 0 :(得分:1)

Laravel自动json_decode来自json请求的输入,但它将对象解码为关联数组而不是对象。如果你真的想要一个对象,你只需要再次编码和解码。

$newserials = json_decode(json_encode($request->newserials));

但请注意,这只是一个简单的PHP stdClass对象,我假设它实际上就是您所需要的。这不是一个雄辩的模型。