Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
MaxfieldRepository
100.00% covered (success)
100.00%
10 / 10
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 search
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 createQueryBuilderSearch
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace App\Repository;
6
7use App\Entity\Maxfield;
8use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
9use Doctrine\ORM\QueryBuilder;
10use Doctrine\Persistence\ManagerRegistry;
11
12/**
13 * @extends ServiceEntityRepository<Maxfield>
14 */
15class MaxfieldRepository extends ServiceEntityRepository
16{
17    public function __construct(ManagerRegistry $registry)
18    {
19        parent::__construct($registry, Maxfield::class);
20    }
21
22    /**
23     * @return Maxfield[]
24     */
25    public function search(string|null $search = null): array
26    {
27        /** @var Maxfield[] */
28        return $this->createQueryBuilderSearch($search)
29            ->getQuery()
30            ->getResult();
31    }
32
33    public function createQueryBuilderSearch(string|null $search = null
34    ): QueryBuilder
35    {
36        $queryBuilder = $this->createQueryBuilder('m')
37            ->orderBy('m.name', 'ASC');
38
39        if ($search) {
40            $queryBuilder->andWhere('LOWER(m.name) LIKE LOWER(:search)')
41                ->setParameter('search', '%'.$search.'%');
42        }
43
44        return $queryBuilder;
45    }
46}