如何将对象推送到laravel db?

时间:2017-07-01 15:21:01

标签: php object laravel-5

我正在使用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?

谢谢!

0 个答案:

没有答案