mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 01:08:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| declare(strict_types=1);
 | |
| 
 | |
| /*
 | |
|  * Chill is a software for social workers
 | |
|  *
 | |
|  * For the full copyright and license information, please view
 | |
|  * the LICENSE file that was distributed with this source code.
 | |
|  */
 | |
| 
 | |
| namespace Chill\DocStoreBundle\Repository;
 | |
| 
 | |
| use Chill\DocStoreBundle\Entity\PersonDocument;
 | |
| use Chill\DocStoreBundle\Entity\StoredObject;
 | |
| use Doctrine\ORM\EntityManagerInterface;
 | |
| use Doctrine\ORM\EntityRepository;
 | |
| use Doctrine\Persistence\ObjectRepository;
 | |
| 
 | |
| /**
 | |
|  * @template ObjectRepository<PersonDocument::class>
 | |
|  */
 | |
| readonly class PersonDocumentRepository implements ObjectRepository, AssociatedEntityToStoredObjectInterface
 | |
| {
 | |
|     private EntityRepository $repository;
 | |
| 
 | |
|     public function __construct(
 | |
|         private EntityManagerInterface $entityManager,
 | |
|     ) {
 | |
|         $this->repository = $this->entityManager->getRepository($this->getClassName());
 | |
|     }
 | |
| 
 | |
|     public function find($id): ?PersonDocument
 | |
|     {
 | |
|         return $this->repository->find($id);
 | |
|     }
 | |
| 
 | |
|     public function findAll()
 | |
|     {
 | |
|         return $this->repository->findAll();
 | |
|     }
 | |
| 
 | |
|     public function findBy(array $criteria, ?array $orderBy = null, ?int $limit = null, ?int $offset = null)
 | |
|     {
 | |
|         return $this->repository->findBy($criteria, $orderBy, $limit, $offset);
 | |
|     }
 | |
| 
 | |
|     public function findOneBy(array $criteria): ?PersonDocument
 | |
|     {
 | |
|         return $this->repository->findOneBy($criteria);
 | |
|     }
 | |
| 
 | |
|     public function getClassName(): string
 | |
|     {
 | |
|         return PersonDocument::class;
 | |
|     }
 | |
| 
 | |
|     public function findAssociatedEntityToStoredObject(StoredObject $storedObject): ?object
 | |
|     {
 | |
|         $qb = $this->repository->createQueryBuilder('d');
 | |
|         $query = $qb->where('d.object = :storedObject')
 | |
|             ->setParameter('storedObject', $storedObject)
 | |
|             ->getQuery();
 | |
| 
 | |
|         return $query->getOneOrNullResult();
 | |
|     }
 | |
| }
 |