2017-01-14 3 views
1

Моя цель - отобразить Twig Template и отправить полученный HTML через API в Mailchimp для отправки.Как избежать escape-пути() в шаблоне Twig

Мой текущий процесс:

1) создать Twig-шаблон email.html.twig.

2) $html = $this->renderView('MyBundle:email.html.twig');

3) sendHtmlViaApi($html);

Вопрос: мне нужен URL, чтобы содержать Mailchimp Merge Tag String, который должен быть *|VARIABLE|*. Я делаю это с {{ path('my_route', {variable : '*|VARIABLE|*'}) }}. Желаемый результат: /myroute/*|VARIABLE|*. В результате я получаю: /myroute/*%7CVARIABLE%7C*.

уже пытались и не методы:

1) с использованием {% autoescape %}

2) |raw

3) Прут расширения с новым url_decode Фильтр из Symfony2 Twig stop escaping path

+0

Вы уверены, что mailchimp не обрабатывает экранированный URL-адрес? Есть причина для побега. Создание неверного URL кажется странным. – Cerad

ответ

0

Так что вы хотите Twig к остановить автоматическую кодировку URL.

Вы можете передать заполнитель только с буквами и подчеркиванием до path(), чтобы он не ускользнул. После этого вы можете replace заполнитель со строкой Mailchimp ожидать:

{{ path('my_route', {variable : 'MAILCHIMP_VARIABLE'})|replace({ 
    'MAILCHIMP_VARIABLE': '*|VARIABLE|*' 
}) }} 
0

Спасибо за ваши предложения! В конце концов, это была моя собственная ошибка ... Один из тегов слияния отсутствовал в настройке на стороне mailchimp, поэтому он не мог заменить его на нужное значение. Глупый я!