Symfony 4.1 - отключить SQLFilter в Twig_Extension

У меня возникла трудная для отладки проблема. Я пытаюсь отключить доктрину SQLFilter в \Twig_Extension, но фильтр по-прежнему применяется к следующему запросу. ?

Я сделал такой же код в контроллере, и фильтр хорошо отключился.

Вот соответствующие части функции Twig:

/**
 * @return array|\Twig_Function[]
 */
public function getFunctions()
{
    return [
        new TwigFunction('hreflang', [$this, 'hreflang'], ['is_safe_callback' => true, 'is_safe' => ['html']]),
    ];
}

/**
 * Builds and returns the hreflang of a page.
 *
 * @param string                 $locale
 * @param TreeNodeInterface|null $contentObject
 *
 * @return string
 */
public function hreflang(string $locale, TreeNodeInterface $contentObject = null)
{
    // Deactivate the doctrine filter
    if ($this->em->getFilters()->isEnabled('locale_filter')) {
        $this->em->getFilters()->disable('locale_filter');
    }

    // Query the ORM for fetching the translated url.
    // This is the part where the SQLFilter should be deactivated but is not.
    $url = $this->getTranslatedUrl($locale, $contentObject);

    // Reactivate the doctrine filter.
    $this->em->getFilters()->enable('locale_filter');

    // ... Builds and returns the hreflang, no relevant code.
}

Этот фрагмент кода используется, чтобы работать как шарм в приложении 3.4, сейчас я работаю над 4.1.4.

Большое спасибо.

Вы действительно вызываете функцию hreflang внутри шаблона?

DarkBee 20.09.2018 14:53

Я знаю, да. Вверху моего базового шаблона (в шапке).

Artggd 20.09.2018 15:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
158
0

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