2013-09-23 3 views
0

Я хотел бы отобразить шаблон в строке в контроллере Symfony и избежать его экранирования. Я не хочу, чтобы выворачивать веточку, убегающую по всему миру. Вид применения фильтра |raw в самом шаблоне, но с контроллера.визуализировать необработанный HTML-код в контроллере Symfony

Я представляю себе что-то вроде

$rendered_unescaped = $this->container->get('templating') 
     ->render($templatehere, $paramshere, 
      array('autoescape'=>false)); 

Кстати, я мечтательно попробовал предыдущий не повезло в самом деле.

Эта потребность возникает, когда я хочу добавить html chunk в ответ ajax json и понять, что я получаю htmlentities вокруг.

Спасибо, Хавьер

+0

Вы уверены, что строка скрыта 'twig', а не' javascript' – ferdynator

+0

Я думаю, что вы правы. Я еще тестировал и на самом деле не скрывался в стороне symfony. Думаю, я должен просто удалить сообщение. – javigzz

+0

Оставить сообщение, я искал то же самое после ошибочного использования jQuery .text() вместо .html() ... – sglessard

ответ

1

Вы можете использовать autoescape тег

{ 
    "foo": { 
     "html": "{% autoescape false %}<p>Yo, <span>{{ name }}</span>, I'm real happy for you, and Imma let you finish...</p>{% endautoescape %}" 
    } 
} 

Кроме того, я не проверял это, но вы можете изменить стратегию по умолчанию шаблонов Twig.

$this->container->get('templating')->getExtension('escaper')->setDefaultStrategy(false); 
+0

Спасибо Адаму. В первом варианте вам нужно отредактировать шаблон (так что нет, что мне нужно). Я проверил второе. Получил ошибку, но исправлен, если вы измените «templating» для «twig». Все еще не работает для меня ... потому что я боюсь, что я, возможно, ошибся в этой проблеме. Теперь я думаю, что это в стороне. извините :-(мой плохой – javigzz

+0

@javigzz не проблема, я вообще-то научился чему-то в этом разбираться;) –

Смежные вопросы