Ankündigung

Einklappen
Keine Ankündigung bisher.

Globale Variablen aus der Datenbank in Symfony 6

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Globale Variablen aus der Datenbank in Symfony 6

    Hi,

    ich scheitere seit Tagen daran globale Variablen aus der Datenbank zu holen die in der ganzen Anwendung gültig sind, also unabhängig der gewählten Route bzw. des Raumes in der App.

    Meine twig.yaml sieht wie folgt aus:


    twig:

    globals:
    article : '@App\Twig\ArticleExtension'
    ...und meine ArticleExtension in src/Twig/ArticleExtension wie folgt:


    <?php
    namespace App\Twig;
    use App\Entity\Article;
    use Doctrine\ORM\EntityManagerInterface;
    use Twig\Extension\AbstractExtension;
    use Twig\TwigFunction;
    class ArticleExtension extends AbstractExtension
    {
    private $em;
    public function __construct(EntityManagerInterface $em)
    {
    $this->em = $em;
    }
    public function getFunctions(): array
    {
    return [
    new TwigFunction('article', [$this, 'GetArticles'])
    ];
    }
    public Function getArticles()
    {
    return $this->em->getRepository(Article::class)->findBy([], ['name' => 'ASC']);
    }
    }
    Wenn ich das ganze im Twig Template dumpe erhalte ich irgendwann nur die in Local Server EON. Ich habe herausgefunden, dass er bereits am Constructor hängenbleibt.

    Wenn ich in der Extension eine Variable definiere und dann global ausgeben will, dann funzt das Ganze auch.

    Ich bin ausschließlich an einer Lösung mit PHP interessiert.

  • #2
    Liegt es ggf daran, dass du GetArticles angibst, deine Methode aber getArticles heißt?
    Darüber hinaus würde ich das Repository injecten und nicht den entity Manager.

    Kommentar


    • #3
      Danke für deine Antwort.

      In der Methode hatte sich durch das ständige Versuchen nur ein Fehler eingeschlichen, daran liegt es aber nicht. Über die Repository im Constructor das gleiche Problem->Endlosschleife mit Abbruch.

      {{dump(article)}} -> Endlosschleife
      {{dump(article.GetArticles)}} -> NULL

      Sonst noch eine Idee?

      Es muss doch eine Möglichkeit geben dynamische Variablen überall, ohne spezielle Route verfügbar zu machen.

      Kommentar


      • #4
        Wenn artivle.getArticles eine Endlosschleife produziert, hast du dann ggf. ein nested Object? Also das beim Dump eine Refernz auf sich selber ausgegeben wird, die wiederum eine Referenz auf sich selbst hat?

        Kommentar


        • #5
          Hallo nochmal,

          Über die Repository hat es zum gleichen Ergebnis geführt, wie über den EM. Auf dem Mac gab es dann aber sogar einen Hinweis, Verschachtelungsebene zu tief o. ä..

          Habe dann einfach das versucht, was ich ursprünglich machen wollte, nämlich nur Wahrheitswerte abfragen und Objekte zählen. Das hat wunderbar funktioniert. Offensichtlich ist eine komplette Ausgabe über die Extension nicht möglich, was ich ja auch nicht wollte. da es aber zum testen weniger Code war, hatte ich es so versucht.

          Also Problem gelöst.

          Kommentar

          Lädt...
          X