Доктрина и фильтр Symfony, отладьте фильтр

Итак, у меня есть следующий фильтр:

class ClientFilter extends SQLFilter
{
    public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
    {
        return $targetTableAlias.'client_id = '. $this->getParameter('client_id');
    }

}

и в моем контроллере:

$em = $this->get('doctrine.orm.default_entity_manager');
$filter = $em->getFilters()->enable('client_filter');
var_dump($em->getFilters()->isEnabled('client_filter'));

он распечатывает bool(true), что означает, что он включен, но когда я смотрю на команды sql доктрины из профилировщика Symfony, я не вижу client_id в статусе WHERE

И я не могу установить его глобально, потому что он мне нужен только после входа в систему. Возникает вопрос, как я могу проверить, работает ли фильтр? и другой побочный вопрос будет: если я установил его глобально, есть ли способ заставить его работать только после входа в систему, потому что таблица пользователей не имеет client_id и выдает ошибку, поскольку идентификатор клиента добавляется только после входа в систему, зависит от того, какой пользователь будет авторизоваться.

p.s я добавляю client_id в сеанс после входа в систему!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
0
85
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я отвечаю на это, так как я был таким отвагой

В коде отсутствуют 2 вещи:

 - $filter->setParameter('client_id',1); // 1 i usually get it from session
 - and the actual call to some function to call a db table after that code i had nothing applied but the rendering of twig template.

код в контроллере теперь выглядит так:

$this->get('somerepository')->findOneById(1);

Другие вопросы по теме