Symfony 4.1 - отключение SQLFilter в Twig_Extension - PullRequest
0 голосов
/ 20 сентября 2018

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

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

Вот соответствующие части функции 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

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

...