【发布时间】:2015-02-16 10:08:23
【问题描述】:
我想覆盖基本 Symfony2 表单输入字段,以添加我的类,但它不起作用。这是我的代码AcmeDemoBundle:Form:fields.html.twig
{% extends 'form_div_layout.html.twig' %}
{% block form_widget_simple %}
{% set type = type|default('text') %}
<input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %} class="testik_class"/>
{% endblock form_widget_simple %}
在config.yml
# Twig Configuration
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
form_themes:
- 'AcmeDemoBundle:Form:fields.html.twig'
但它不起作用。在我的表单中class attr 仍然等于custom_form。我做错了什么?也许我覆盖了不正确的块?
有人可以帮助我吗?谢谢!
补充: 这是我的表单类型:
/**
* {@inheritDoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('title', 'text', ['label' => 'form.title'])
->add('content', 'textarea', ['label' => 'form.content'])
;
}
这是表单模板:
{{ form_widget(form) }}
有趣的是,当我尝试覆盖 textarea_widget 块或 integer_widget 时,一切正常。或者当我尝试将data-* attr 添加到simple_widget 时,它也可以正常工作。但是class 没有追加。
【问题讨论】:
-
在此处发布您使用此块的模板中的代码。我认为您正在覆盖的不正确块中的主要问题。
-
嗯...我没有在我的 form.html.twig 中使用它来呈现表单。如果我理解正确的文档,它必须在我配置
config.yml时自动挂钩 ... -
是的,你没看错。但我们需要知道您要呈现哪些表单字段以及如何做到这一点?
-
@MichaelSivolobov,我会马上发布所有代码
-
尝试覆盖
form_widget块,你就会知道问题出在哪里。
标签: php forms symfony twig templating