Dostęp aktualnie zalogowany użytkownik w EntityRepository

Chcę stworzyć prosty przykład bloga, w którym użytkownicy mają przypisaną ulubioną kategorię. Oznacza to, że może pisać tylko artykuły dla tej kategorii. (Niektóre z nich - głównie administratorzy - otrzymają możliwość zmiany kategorii, ale to nie problem ... na razie ^^)

Po raz pierwszy stworzyłem relację między jednostką użytkownika a jednostką kategorii. Wszystko dziala. Każdy użytkownik ma teraz wybraną główną kategorię.

Jedyną rzeczą, która mnie niepokoi, jest to, że nie mogę zdobyć aktualnego zalogowanego użytkownika w klasach EntityType (formbuilder) i EntityRepository.

W moim formularzu „Nowy post” istnieją relacje z innymi podmiotami (np. Tagi). Używam formtype 'entity' w klasie EntityType, aby wygenerować te elementy formularza. Teraz nie chcę filtrować tagów, aby zezwalać na wybieranie tylko tagów, które mają tę samą relację kategorii, co kategoria aktualnie zalogowanych użytkowników.

Próbowałem użyć opcji query_builder z typu formty. Ale ponieważ nie mogę pobrać bieżącego obiektu użytkownika, nie wiem, którą kategorię wybrał. Ten sam problem z EntityRepository.

Teraz mogłem filtrować tagi już w kontrolerze PostController, ale problem polega na tym, że będę tego potrzebował w kółko. Dlatego nie chcę kodować tego za każdym razem, gdy dodam coś nowego.

Myślałem, że najlepiej będzie umieścić ten filtr w EntityRepository. Zawsze mogę uzyskać dostęp do kategorii findAllByCategory. Ale potrzebuję tam obiektu użytkownika.

Jaki jest najlepszy sposób, aby to osiągnąć? Przeszukałem dużo, ale albo szukałem błędnych terminów, albo nikt nie ma tego problemu :)

questionAnswers(3)

yourAnswerToTheQuestion