Example #1
0
 /**
  * @param $data
  * @return int
  */
 public function insert($data)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     $orderData = $data;
     unset($orderData['item']);
     $items = $data['item'];
     $tableGateway = $this->repository->get();
     try {
         $tableGateway->getAdapter()->getDriver()->getConnection()->beginTransaction();
         $orderId = $order = $this->repository->insert($orderData);
         foreach ($items as $item) {
             $item['order_id'] = $orderId;
             $this->repository->insertItem($item);
         }
         $tableGateway->getAdapter()->getDriver()->getConnection()->commit();
     } catch (\Exception $e) {
         $tableGateway->getAdapter()->getDriver()->getConnection()->rollback();
         return 'error';
     }
     return ['order_id' => $orderId];
 }
 public function update($data, $id)
 {
     $hydrator = new ObjectProperty();
     $data = $hydrator->extract($data);
     return $this->tableGateway->update($data, $id);
 }