我遇到了一个关于 Twig 在 Symfony2 中逃逸的问题。
问题
我目前正在使用 Symfony 的表单构建器来创建一个表单来管理我的项目的类别。我当前创建表单的代码如下:
$Form
->add('title', 'text', array('label' => 'Title', 'attr' => array('class' => 'span8')))
->add('parent', 'entity', array(
'label' => 'Category',
'attr' => array('class' => 'selectPicker span8'),
'property' => 'indentedTitle',
'empty_value' => ' -- New Category --',
'required' => false,
'class' => 'News\Entity\Category',
'query_builder' => function(EntityRepository $Repository) {
return $Repository->createQueryBuilder('c')
->orderBy('c.root, c.left');
}
))
->add('commit', 'submit', array('label' => 'Save', 'attr' => array('class' => 'btn btn-info')));
我在实体“indentedTitle”中添加的回调只是在标题前添加两行,具体取决于树集中的类别级别。
public function getIndentedTitle() {
return str_repeat("--", $this->level) . $this->title;
}
到目前为止一切正常,除了当我尝试添加一些 HTML 代码来修改我在选择列表中输出的类别名称时,它会自动转义。例如,您可以看到我在表单生成器中的“empty_value”键旁边添加了一个简单的 标记。因此,我在选择列表中将“ -- New Category --”作为第一个选项。
我试过的
树枝自动逃生
{% autoescape false %} {{ form_row(form.parent) }} {% endautoescape %}
树枝延伸
我尝试编写自定义 Twig 扩展,其唯一目的是转义(html_decode)我传递给它的整个对象集 - 仍然不好。不幸的是,我没有保存我的代码以将其粘贴到此处,因此我将提供一个链接,其中另一个用户提出了与我相同的方法(实际上是针对 JSON,但概念是相同的)。链接到 SO 答案
所以,简单地说,作为我最后的想法 - 我必须做什么,才能在我的选择列表中使用一些 HTML,如“strong”或“ ”而不让它转义?
提前致谢。