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->clientTableGateway->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;
 }
 public function find($id, UsersEntity $user = null)
 {
     $hydrator = new ClassMethods();
     $hydrator->addStrategy('items', new OrderItemHydratorStrategy($hydrator));
     $where = new Where();
     $where->equalTo('id', $id);
     if ($user) {
         $where->equalTo('user_id', $user->getId());
     }
     $order = $this->tableGateway->select($where)->current();
     if (!$order) {
         return null;
     }
     $client = $this->clientTableGateway->select(['id' => $order->getClientId()])->current();
     $order->setClient($client);
     $sql = $this->tableGatewayItems->getSql();
     $select = $sql->select();
     $select->join('products', 'order_items.product_id = products.id', ['product_name' => 'name'])->where(['order_id' => $order->getId()]);
     $items = $this->tableGatewayItems->selectWith($select);
     foreach ($items as $item) {
         $order->addItem($item);
     }
     return $hydrator->extract($order);
 }
 /**
  * @covers Zend\Db\TableGateway\AbstractTableGateway::getSql
  */
 public function testGetSql()
 {
     $this->assertInstanceOf('Zend\\Db\\Sql\\Sql', $this->table->getSql());
 }