Greifen Sie auf den aktuell in EntityRepository angemeldeten Benutzer zu

Ich möchte ein einfaches Blog-Beispiel erstellen, in dem den Nutzern eine Lieblingskategorie zugeordnet ist. Dies bedeutet, dass nur Artikel für diese Kategorie geschrieben werden können. (Einige von ihnen - meistens Administratoren - bekommen die Möglichkeit, die Kategorien zu wechseln, aber das ist nicht das Problem ... fürs Erste ^^)

Also habe ich zuerst eine Beziehung zwischen der User- und der Category-Entität erstellt. Alles funktioniert gut. Für jeden Benutzer ist jetzt eine Hauptkategorie ausgewählt.

Das einzige, was mich stört, ist, dass ich den aktuell angemeldeten Benutzer in den Klassen EntityType (Formbuilder) und EntityRepository nicht erreichen kann.

In meinem "New Post" -Formular gibt es Beziehungen zu anderen Entitäten (z. B. Tags). Ich benutze den Formulartyp 'entity' in der EntityType-Klasse, um diese Formularelemente zu generieren. Jetzt möchte ich die Tags nicht filtern, um nur Tags auswählbar zu machen, die dieselbe Kategoriebeziehung haben wie die aktuell angemeldete Benutzerkategorie.

Ich habe versucht, die query_builder-Option aus dem Entity-Formulartyp zu verwenden. Da ich das aktuelle Benutzerobjekt nicht erhalten kann, weiß ich nicht, welche Kategorie er ausgewählt hat. Gleiches Problem mit dem EntityRepository.

Jetzt könnte ich die Tags schon im PostController filtern, aber das Problem ist, dass ich das immer und immer wieder brauche. Und deshalb möchte ich das nicht jedes Mal codieren, wenn ich etwas Neues hinzufüge.

Ich dachte, es wäre am besten, diesen Filter im EntityRepository zu platzieren. So kann ich immer auf die findAllByCategory zugreifen. Aber ich brauche das User-Objekt drin.

Was ist der beste Weg, um dies zu erreichen? Habe viel gesucht, aber entweder habe ich nach den falschen Begriffen gesucht oder niemand hat dieses Problem :)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage