aboutsummaryrefslogblamecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/Repository/TagRepository.php
blob: ac3145a1dc8896d5ec8a980f3fee4769d37817ed (plain) (tree)
1
2
3
4
5
6
7
8
9




                                         

                                          
 
                                            
 


                 
                         











                                                                        
















                                                                             
 
<?php

namespace Wallabag\CoreBundle\Repository;

use Doctrine\ORM\EntityRepository;
use Pagerfanta\Adapter\DoctrineORMAdapter;
use Pagerfanta\Pagerfanta;

class TagRepository extends EntityRepository
{
    /**
     * Find Tags.
     *
     * @param int $userId
     *
     * @return array
     */
    public function findTags($userId)
    {
        $qb = $this->createQueryBuilder('t')
            ->where('t.user =:userId')->setParameter('userId', $userId);

        $pagerAdapter = new DoctrineORMAdapter($qb);

        return new Pagerfanta($pagerAdapter);
    }

    /**
     * Find a tag by its label and its owner.
     *
     * @param string $label
     * @param int    $userId
     *
     * @return Tag|null
     */
    public function findOneByLabelAndUserId($label, $userId)
    {
        return $this->createQueryBuilder('t')
            ->where('t.label = :label')->setParameter('label', $label)
            ->andWhere('t.user = :user_id')->setParameter('user_id', $userId)
            ->getQuery()
            ->getOneOrNullResult();
    }
}