namespace Wallabag\CoreBundle\Repository;
-use Doctrine\ORM\Query;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Tools\Pagination\Paginator;
->leftJoin('e.user', 'u')
->where('e.isArchived = false')
->andWhere('u.id =:userId')->setParameter('userId', $userId)
- ->andWhere('e.isDeleted=false')
->orderBy('e.createdAt', 'desc')
->getQuery();
->leftJoin('e.user', 'u')
->where('e.isArchived = true')
->andWhere('u.id =:userId')->setParameter('userId', $userId)
- ->andWhere('e.isDeleted=false')
->orderBy('e.createdAt', 'desc')
->getQuery();
->leftJoin('e.user', 'u')
->where('e.isStarred = true')
->andWhere('u.id =:userId')->setParameter('userId', $userId)
- ->andWhere('e.isDeleted = false')
->orderBy('e.createdAt', 'desc')
->getQuery();
* @param int $userId
* @param bool $isArchived
* @param bool $isStarred
- * @param bool $isDeleted
* @param string $sort
* @param string $order
*
- * @return ArrayCollection
+ * @return array
*/
- public function findEntries($userId, $isArchived = null, $isStarred = null, $isDeleted = null, $sort = 'created', $order = 'ASC')
+ public function findEntries($userId, $isArchived = null, $isStarred = null, $sort = 'created', $order = 'ASC')
{
$qb = $this->createQueryBuilder('e')
- ->leftJoin('e.user', 'u')
- ->where('u.id =:userId')->setParameter('userId', $userId);
+ ->where('e.user =:userId')->setParameter('userId', $userId);
if (null !== $isArchived) {
$qb->andWhere('e.isArchived =:isArchived')->setParameter('isArchived', (bool) $isArchived);
$qb->andWhere('e.isStarred =:isStarred')->setParameter('isStarred', (bool) $isStarred);
}
- if (null !== $isDeleted) {
- $qb->andWhere('e.isDeleted =:isDeleted')->setParameter('isDeleted', (bool) $isDeleted);
- }
-
if ('created' === $sort) {
$qb->orderBy('e.createdAt', $order);
} elseif ('updated' === $sort) {
return $qb
->getQuery()
- ->getResult(Query::HYDRATE_ARRAY);
+ ->getResult();
+ }
+
+ public function findOneWithTags()
+ {
+ $qb = $this->createQueryBuilder('e')
+ ->innerJoin('e.tags', 't')
+ ->addSelect('t');
+
+ return $qb
+ ->getQuery()
+ ->getOneOrNullResult();
}
}