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 search($type 'Neues Wort'$key): Response{
  12.     $entityManager $this->getDoctrine()->getManager();
  13.     $repository $entityManager->getRepository(IndexEntry::class);
  14.     $query $entityManager->createQuery('
  15.         SELECT i, c, comp, e FROM App\Entity\IndexEntry i
  16.         JOIN i.corrections c LEFT JOIN i.compilations comp LEFT JOIN c.edition e WHERE i.type = :type AND i.phrase LIKE :key ORDER BY i.sort');
  17.     $parameters = ['type' => $type'key' => '%' $key '%'];
  18.     $query->setParameters($parameters);
  19.     $indexEntries $query->getResult();
  20.     $topic_indexEntries = [];
  21.     foreach($indexEntries as $ie){
  22.       $topic_indexEntries[$ie->getTopic()][$ie->getId()] = $ie;
  23.     }
  24.     $compilation null;
  25.     $compilations = [];
  26.     $unassigned = [];
  27.     //return $this->render('indexEntry/list.html.twig', ['type' => $type, 'key' => $key, 'indexEntries' => $topic_indexEntries]);
  28.     return $this->render('indexEntry/list.html.twig', ['type' => $type'key' => $key'compilation' => $compilation'compilations' => $compilations'indexEntries' => $topic_indexEntries'unassigned' => $unassigned]);
  29.   }
  30.   public function list($type 'Neues Wort'$compilationId null): Response{
  31.     $entityManager $this->getDoctrine()->getManager();
  32.     $repository $entityManager->getRepository(IndexEntry::class);
  33.     $indexEntries null;
  34.     $compilation null;
  35.     $compilations = [];
  36.     $unassigned = [];
  37.     if($compilationId){
  38.       $query $entityManager->createQuery('
  39.         SELECT i, c, comp, e FROM App\Entity\IndexEntry i
  40.         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');
  41.       $parameters = ['type' => $type'compilationId' => $compilationId];
  42.       $query->setParameters($parameters);
  43.       $indexEntries $query->getResult();
  44.       $query $entityManager->createQuery('
  45.         SELECT i, c FROM App\Entity\IndexEntry i
  46.         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');
  47.       $parameters = ['type' => $type'compilationId' => $compilationId];
  48.       $query->setParameters($parameters);
  49.       $query->setMaxResults(1000);
  50.       $unassigned $query->getResult();
  51.       $repositoryCompilation $entityManager->getRepository(Compilation::class);
  52.       $compilation $repositoryCompilation->findOneBy(['id' => $compilationId]);
  53.       $compilations $repositoryCompilation->findBy(['collection' => 'BL']);
  54.     } else {
  55.       $query $entityManager->createQuery('
  56.         SELECT i, c, comp FROM App\Entity\IndexEntry i
  57.         JOIN i.compilations c LEFT JOIN i.compilations comp WHERE i.type = :type ORDER BY i.sort');
  58.       $parameters = ['type' => $type];
  59.       $query->setParameters($parameters);
  60.       $indexEntries $query->getResult();
  61.     }
  62.     $topic_indexEntries = [];
  63.     foreach($indexEntries as $ie){
  64.       $topic_indexEntries[$ie->getTopic()][$ie->getId()] = $ie;
  65.     }
  66.     $key null;
  67.     return $this->render('indexEntry/list.html.twig', ['type' => $type'key' => $key'compilation' => $compilation'compilations' => $compilations'indexEntries' => $topic_indexEntries'unassigned' => $unassigned]);
  68.   }
  69. }