我正在使用Laravel,我有一个必须推送到我的数据库的对象,事实是,这是一个对象,我需要它作为一个数组来推送它,我在这里解释:
所以,这就是我将数组推送到我的数据库的方式:
$subset = collect($MYARRAY);
$arr = $subset->map (function ($item) {
$now = Carbon::now('utc')->toDateTimeString();
return array(
'order_id' => $item['data']['AmazonOrderId'],
'buyer_name' => $item['data']['BuyerName'],
'buyer_email' => $item['data']['BuyerEmail'],
'store_name' => $item['storeName'],
'ship_service_level' => $item['data']['ShipServiceLevel'],
'order_status' => $item['data']['OrderStatus'],
'fulfillment_channel' => $item['data']['FulfillmentChannel'],
'purchase_date' => $item['data']['PurchaseDate'],
'last_ship_date' => $item['data']['LatestShipDate'],
'created_at'=> $now,
'updated_at'=> $now
);
})->all();
$order->insert($arr);
这段代码效果很好,如果我有这个$ MYARRAY(我手动创建了数组):
$MYARRAY = array (
0 =>
array(
'data' =>
array (
[AmazonOrderId] => 111
[SellerOrderId] => 222
[PurchaseDate] => 2013-05-31T15:20:59Z
[LastUpdateDate] => 2013-06-01T18:00:41Z
...
))
1 =>
array(
'data' =>
array (
...
)
);
但是,它在这个对象中失败了(这是对象的var_export):
Array
(
[0] => Sonnenglas\AmazonMws\AmazonOrder Object
(
[data:Sonnenglas\AmazonMws\AmazonOrder:private] => Array
(
[AmazonOrderId] => 111
[SellerOrderId] => 222
[PurchaseDate] => 2013-05-31T15:20:59Z
[LastUpdateDate] => 2013-06-01T18:00:41Z
...
)
)
[1] => Sonnenglas\AmazonMws\AmazonOrder Object
(
[data:Sonnenglas\AmazonMws\AmazonOrder:private] => Array
(
[AmazonOrderId] => 2345
[SellerOrderId] => 2345
[PurchaseDate] => 2013-06-01T02:11:24Z
...
))
现在,这就是我尝试过的,我试图将它转换为数组:
$array = json_decode(json_encode($object), true);
但后来我有了一个空数组(转换为json并将其全部删除,因为我猜对象类型)。
我也试过这个:
$MYARRAY = array_map(function($object){
return (array) $object;
}, $data);
没有成功,(我也尝试用foreach将它转换为数组)所以,请你帮忙,我怎样才能将这个对象转换回数组,或者,如何映射对象以将其推送到数组中DB?
谢谢!