zend-blog-3-backend

Форк
0
/
UserRepository.php 
53 строки · 1.2 Кб
1
<?php
2

3
namespace App\Repository;
4

5
use App\Entity\User;
6
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
7
use Doctrine\ORM\Query;
8
use Doctrine\Persistence\ManagerRegistry;
9

10
/**
11
 * UserRepository
12
 *
13
 * @method User|null findOneByUsername($username)
14
 * @method User|null findOneBy(array $criteria)
15
 */
16
class UserRepository extends ServiceEntityRepository
17
{
18
    /**
19
     * @param ManagerRegistry $registry
20
     */
21
    public function __construct(ManagerRegistry $registry)
22
    {
23
        parent::__construct($registry, User::class);
24
    }
25

26
    public function getListQuery(): Query
27
    {
28
        return $this
29
            ->createQueryBuilder('e')
30
            ->orderBy('e.id', 'ASC')
31
            ->getQuery();
32
    }
33

34
    /**
35
     * @return User
36
     */
37
    public function getAdmin(): User
38
    {
39
        $qb = $this->createQueryBuilder('u');
40
        $qb
41
            ->andWhere($qb->expr()->eq('u.userType', $qb->expr()->literal('admin')))
42
            ->orderBy('u.id', 'ASC')
43
            ->setMaxResults(1)
44
        ;
45

46
        $user = $qb->getQuery()->getOneOrNullResult();
47
        if (!$user) {
48
            throw new \LogicException('Blog without admin :(');
49
        }
50

51
        return $user;
52
    }
53
}
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.