zend-blog-3-backend
53 строки · 1.2 Кб
1<?php
2
3namespace App\Repository;
4
5use App\Entity\User;
6use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
7use Doctrine\ORM\Query;
8use Doctrine\Persistence\ManagerRegistry;
9
10/**
11* UserRepository
12*
13* @method User|null findOneByUsername($username)
14* @method User|null findOneBy(array $criteria)
15*/
16class UserRepository extends ServiceEntityRepository
17{
18/**
19* @param ManagerRegistry $registry
20*/
21public function __construct(ManagerRegistry $registry)
22{
23parent::__construct($registry, User::class);
24}
25
26public function getListQuery(): Query
27{
28return $this
29->createQueryBuilder('e')
30->orderBy('e.id', 'ASC')
31->getQuery();
32}
33
34/**
35* @return User
36*/
37public 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();
47if (!$user) {
48throw new \LogicException('Blog without admin :(');
49}
50
51return $user;
52}
53}
54