/** * @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); }