*/ class BibliographyRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, Bibliography::class); } /** * @return Bibliography[] */ public function findAllBySite(int $siteId): array { $conn = $this->getEntityManager()->getConnection(); $sql = ' SELECT b.id, b.citazione, b.riferimento, bs.pagine FROM bibliografia b INNER JOIN bibliografia_sito bs ON bs.id_bibliografia = b.id WHERE bs.id_sito = :siteId ORDER BY bs.ordine ASC '; $stmt = $conn->prepare($sql); $results = $stmt->executeQuery(['siteId' => $siteId])->fetchAllAssociative(); $entities = []; foreach ($results as $row) { $biblio = new Bibliography(); $biblio->setId($row['id']); $biblio->setCitation($row['citazione']); $biblio->setReference($row['riferimento']); $biblio->setPages($row['pagine']); $entities[] = $biblio; } return $entities; } /** * @return Bibliography[] */ public function findAllByNotConserved(int $notConservedId): array { $conn = $this->getEntityManager()->getConnection(); $sql = ' SELECT b.id, b.citazione, b.riferimento, bs.pagine FROM bibliografia b INNER JOIN bibliografia_non_conser bs ON bs.id_bibliografia = b.id WHERE bs.id_non_conser = :notConservedId ORDER BY bs.ordine ASC '; $stmt = $conn->prepare($sql); $results = $stmt->executeQuery(['notConservedId' => $notConservedId])->fetchAllAssociative(); $entities = []; foreach ($results as $row) { $biblio = new Bibliography(); $biblio->setId($row['id']); $biblio->setCitation($row['citazione']); $biblio->setReference($row['riferimento']); $biblio->setPages($row['pagine']); $entities[] = $biblio; } return $entities; } /** * @return Bibliography[] */ public function findAllByFinding(int $findingId): array { $conn = $this->getEntityManager()->getConnection(); $sql = ' SELECT b.id, b.citazione, b.riferimento, bs.pagine FROM bibliografia b INNER JOIN bibliografia_rinvenim bs ON bs.id_bibliografia = b.id WHERE bs.id_rinvenimento = :findingId ORDER BY bs.ordine ASC '; $stmt = $conn->prepare($sql); $results = $stmt->executeQuery(['findingId' => $findingId])->fetchAllAssociative(); $entities = []; foreach ($results as $row) { $biblio = new Bibliography(); $biblio->setId($row['id']); $biblio->setCitation($row['citazione']); $biblio->setReference($row['riferimento']); $biblio->setPages($row['pagine']); $entities[] = $biblio; } return $entities; } /** * @return Bibliography[] */ public function findAllByReuse(int $reuseId): array { $conn = $this->getEntityManager()->getConnection(); $sql = ' SELECT b.id, b.citazione, b.riferimento, br.pagine FROM bibliografia b INNER JOIN bibliografia_reimpiego br ON br.id_bibliografia = b.id WHERE br.id_reimpiego = :reuseId ORDER BY br.ordine ASC '; $stmt = $conn->prepare($sql); $results = $stmt->executeQuery(['reuseId' => $reuseId])->fetchAllAssociative(); $entities = []; foreach ($results as $row) { $biblio = new Bibliography(); $biblio->setId($row['id']); $biblio->setCitation($row['citazione']); $biblio->setReference($row['riferimento']); $biblio->setPages($row['pagine']); $entities[] = $biblio; } return $entities; } /** * @return Bibliography[] */ public function findAllByPrehistoric(int $prehistoricId): array { $conn = $this->getEntityManager()->getConnection(); $sql = ' SELECT b.id, b.citazione, b.riferimento, br.pagine FROM bibliografia b INNER JOIN bibliografia_preistoria br ON br.id_bibliografia = b.id WHERE br.id_preistoria = :prehistoricId ORDER BY br.ordine ASC '; $stmt = $conn->prepare($sql); $results = $stmt->executeQuery(['prehistoricId' => $prehistoricId])->fetchAllAssociative(); $entities = []; foreach ($results as $row) { $biblio = new Bibliography(); $biblio->setId($row['id']); $biblio->setCitation($row['citazione']); $biblio->setReference($row['riferimento']); $biblio->setPages($row['pagine']); $entities[] = $biblio; } return $entities; } }