zend-blog-3-backend

Форк
0
/
MediaFileRepository.php 
96 строк · 2.0 Кб
1
<?php
2

3
namespace App\Repository;
4

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

10
/**
11
 * MediaFileRepository
12
 *
13
 * @method MediaFile|null find($id, $lockMode = null, $lockVersion = null)
14
 */
15
class MediaFileRepository extends ServiceEntityRepository
16
{
17
    /**
18
     * @param ManagerRegistry $registry
19
     */
20
    public function __construct(ManagerRegistry $registry)
21
    {
22
        parent::__construct($registry, MediaFile::class);
23
    }
24

25
    /**
26
     * @return Query
27
     */
28
    public function getListQuery(): Query
29
    {
30
        $qb = $this->createQueryBuilder('e');
31
        $qb
32
            ->select('e', 'p', 't')
33
            ->leftJoin('e.post', 'p')
34
            ->leftJoin('p.tags', 't')
35
            ->orderBy('e.id', 'DESC')
36
        ;
37

38
        return $qb->getQuery();
39
    }
40

41
    /**
42
     * @param int $postId
43
     *
44
     * @return MediaFile[]
45
     */
46
    public function getFilesByPost($postId)
47
    {
48
        $qb = $this->createQueryBuilder('m');
49

50
        $qb
51
            ->where($qb->expr()->eq('m.post', ':postId'))
52
            ->setParameter('postId', $postId)
53
            ->orderBy('m.id')
54
        ;
55

56
        return $qb->getQuery()->getResult();
57
    }
58

59
    /**
60
     * @param int $postId
61
     *
62
     * @return int
63
     */
64
    public function getCountByPostId($postId)
65
    {
66
        $qb = $this->createQueryBuilder('m');
67

68
        $qb
69
            ->select('COUNT(m.id)')
70
            ->where($qb->expr()->eq('m.post', ':postId'))
71
            ->setParameter('postId', $postId)
72
        ;
73

74
        return (int)$qb->getQuery()->getSingleScalarResult();
75
    }
76

77
    /**
78
     * @return MediaFile[]
79
     */
80
    public function getNotBackedUp()
81
    {
82
        $qb = $this->createQueryBuilder('m');
83

84
        $qb
85
            ->where(
86
                $qb->expr()->eq(
87
                    'm.backedUp',
88
                    $qb->expr()->literal(false)
89
                )
90
            )
91
            ->setMaxResults(30)
92
        ;
93

94
        return $qb->getQuery()->getResult();
95
    }
96
}
97

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

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

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

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