src/Controller/IndexEntryController.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Correction;
  4. use App\Entity\Compilation;
  5. use App\Entity\IndexEntry;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use DateTime;
  10. class IndexEntryController extends BeehiveController{
  11.   public function list($type 'Neues Wort'$compilationId null): Response{
  12.     $entityManager $this->getDoctrine()->getManager();
  13.     $repository $entityManager->getRepository(IndexEntry::class);
  14.     $indexEntries null;
  15.     $compilation null;
  16.     $compilations = [];
  17.     $unassigned = [];
  18.     if($compilationId){
  19.       $query $entityManager->createQuery('
  20.         SELECT i, c, comp, e FROM App\Entity\IndexEntry i
  21.         JOIN i.corrections c LEFT JOIN i.compilations comp LEFT JOIN c.edition e WHERE i.type = :type AND c.compilation = :compilationId ORDER BY i.sort');
  22.       $parameters = ['type' => $type'compilationId' => $compilationId];
  23.       $query->setParameters($parameters);
  24.       $indexEntries $query->getResult();
  25.       $query $entityManager->createQuery('
  26.         SELECT i, c FROM App\Entity\IndexEntry i
  27.         INNER JOIN i.compilations comp LEFT JOIN i.corrections c WHERE i.type = :type and comp = :compilationId and c.id IS NULL ORDER BY i.sort');
  28.       $parameters = ['type' => $type'compilationId' => $compilationId];
  29.       $query->setParameters($parameters);
  30.       $query->setMaxResults(1000);
  31.       $unassigned $query->getResult();
  32.       $repositoryCompilation $entityManager->getRepository(Compilation::class);
  33.       $compilation $repositoryCompilation->findOneBy(['id' => $compilationId]);
  34.       $compilations $repositoryCompilation->findBy(['collection' => 'BL']);
  35.     } else {
  36.       $query $entityManager->createQuery('
  37.         SELECT i, c, comp FROM App\Entity\IndexEntry i
  38.         JOIN i.compilations c LEFT JOIN i.compilations comp WHERE i.type = :type ORDER BY i.sort');
  39.       $parameters = ['type' => $type];
  40.       $query->setParameters($parameters);
  41.       $indexEntries $query->getResult();
  42.     }
  43.     $topic_indexEntries = [];
  44.     foreach($indexEntries as $ie){
  45.       $topic_indexEntries[$ie->getTopic()][$ie->getId()] = $ie;
  46.     }
  47.     return $this->render('indexEntry/list.html.twig', ['type' => $type'compilation' => $compilation'compilations' => $compilations'indexEntries' => $topic_indexEntries'unassigned' => $unassigned]);
  48.   }
  49. }