/** * @param Entities\WikiEntity $wiki * @return Entities\WikiDraftEntity|null */ public function getLatestByWiki(Entities\WikiEntity $wiki) { $res = $this->dao->createQueryBuilder()->select('d')->from(Entities\WikiDraftEntity::getClassName(), 'd')->join('d.wiki', 'w')->where('w.id = :wikiId')->orderBy('d.createdAt', 'DESC')->setParameter('wikiId', $wiki->id)->getQuery()->getResult(); return $res ? array_shift($res) : null; }
/** * @return array */ public function getIdListOfWikisThatHaveDrafts() { $qb = $this->dao->createQueryBuilder(); $qb->select('w.id')->from(Entities\WikiDraftEntity::getClassName(), 'd')->leftJoin('d.wiki', 'w')->distinct('w.id')->where($qb->expr()->isNotNull('w.id')); $res = array(); foreach ($qb->getQuery()->getResult() as $i) { $res[] = $i['id']; } return $res; }