0

我想要实现的是用视图助手(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 实体进行编码?

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

4

1 回答 1

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 中所做的那样)以在表单组件中实现它(并在任何地方重用它)。

于 2014-09-14T22:45:01.907 回答