我想要实现的是渲染一个带有视图助手(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]">\<i class="fa fa-sign-in"></i> 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
过滤器。这是最好的方法吗?
答案 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中那样),以在表单组件中实现它(并在任何地方重用它)。