如何将HTML放入按钮的内容?

时间:2014-09-14 22:29:14

标签: forms symfony twig symfony-2.5

我想要实现的是渲染一个带有视图助手(form_row等)的按钮,但我也使用FontAwesome图标,因此我需要将一些HTML放入button的内容中。

问题是特殊字符会转换为HTML实体,因此它不再像HTML一样。

我想要的是什么:

 <button type="button" name="form[save]"><i class="fa fa-sign-in"></i> Sign in</button>

我得到了什么:

 <button type="button" name="form[save]">\&lt;i class=&quot;fa fa-sign-in&quot;&gt;&lt;/i&gt; Sign in</button>

我在做什么:

我创建了一个这样的表单:

$form = $this->createFormBuilder($user)
    // other fields...              
    ->add('save', 'submit', array('label' => '<i class="fa fa-sign-in"></i> Sign in'))
    ->getForm();

我像这样渲染这个按钮:

{{form_row(regForm.save)}}

是否可以阻止编码为HTML entites?

更新 我从现在开始找到的最干净的解决方案是在覆盖raw块模板时使用button_row过滤器。这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您使用{{form_row(regForm.save)}}渲染按钮,则可以更直接地在视图中渲染它,如下所示:

<button type="submit" class="btn green"><i class="fa fa-sign-in"></i> Sign in {{ 'form.global.button.sign_in'|trans({}, 'form') }}</button>

否则你可以创建一个按钮和/或图标枝条扩展(就像在MopaBootstrapBundle中那样),以在表单组件中实现它(并在任何地方重用它)。