Ejemplo n.º 1
0
 public function find($id)
 {
     $resultSet = $this->tableGateway->select(['id' => (int) $id]);
     if ($resultSet->count() == 1) {
         $hydrator = new ClassMethods();
         $hydrator->addStrategy('items', new OrderItemHydratorStrategy(new ClassMethods()));
         $order = $resultSet->current();
         $client = $this->clientsTableGateway->select(['id' => $order->getClientId()])->current();
         $sql = $this->orderItemTableGateway->getSql();
         $select = $sql->select();
         $select->join('products', 'order_items.product_id = products.id', ['product_name' => 'name'])->where(['order_id' => $order->getId()]);
         $items = $this->orderItemTableGateway->selectWith($select);
         $order->setClient($client);
         foreach ($items as $item) {
             $order->addItem($item);
         }
         $data = $hydrator->extract($order);
         return $data;
     }
     return false;
     //return $resultSet->current();
 }