/** * @return array */ public function fetchAll() { $qb = $this->db->createQueryBuilder(); $qb->select('*')->from('album', 'a'); $result = $qb->execute()->fetchAll(); if (empty($result)) { return []; } $hydrator = new \Zend\Stdlib\Hydrator\ArraySerializable(); $albums = []; foreach ($result as $album) { array_push($albums, $hydrator->hydrate($album, new Album())); } return $albums; }
/** * Get package assignments * * @param string $order Package assignment property to sort by, default: PackageName * @param string $direction asc|desc, default: asc * @return \Zend\Db\ResultSet\AbstractResultSet Result set producing \Model\Package\Assignment */ public function getPackageAssignments($order = 'PackageName', $direction = 'asc') { $hydrator = new \Zend\Stdlib\Hydrator\ArraySerializable(); $hydrator->setNamingStrategy(new \Database\Hydrator\NamingStrategy\MapNamingStrategy(array('name' => 'PackageName', 'tvalue' => 'Status', 'comments' => 'Timestamp'))); $hydrator->addStrategy('Timestamp', new \Zend\Stdlib\Hydrator\Strategy\DateTimeFormatterStrategy(\Model\Package\Assignment::DATEFORMAT)); $sql = $this->serviceLocator->get('Database\\Table\\ClientConfig')->getSql(); $select = $sql->select(); $select->columns(array('tvalue', 'comments'))->join('download_available', 'download_available.fileid = devices.ivalue', array('name'), \Zend\Db\Sql\Select::JOIN_INNER)->where(array('hardware_id' => $this['Id'], 'devices.name' => 'DOWNLOAD'))->order(array($hydrator->extractName($order) => $direction)); $resultSet = new \Zend\Db\ResultSet\HydratingResultSet($hydrator, clone $this->serviceLocator->get('Model\\Package\\Assignment')); $resultSet->initialize($sql->prepareStatementForSqlObject($select)->execute()); return $resultSet; }