将选择字段类型 (symfony2) 呈现为按钮
Rendering a choice field type (symfony2) as buttons
我有一个我无法解决的问题。我应该如何处理以下问题:我有一个包含 4 个不同条目的选择字段,我正在以 select 形式(树枝)完美呈现。但是,我想将 4 个条目显示为 4 个单独的按钮。如何更改这 4 个的输入类型?或者我必须做一些完全不同的事情吗?
感谢您的帮助
-AS
编辑(新问题):
Alexandru,感谢您的帮助。这很有帮助。
我在 fields.html.twig 中添加了以下内容:
{% block _appbundle_action_Style_widget -%}
{% for child in form %}
<input type="button" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
{% endfor %}
{%- endblock _appbundle_action_Style_widget %}
但是,当我渲染它时,它告诉我有一个数组到字符串的转换,但不知何故不起作用。当我删除小部件属性、值和选中的部分时,按钮将在没有这些的情况下呈现。
您有几个选项可供选择:
您可以创建一个新的字段类型,我们称之为 "button_group",它将扩展 "choice" 类型并为其编写自定义 Twig,如下所示:
https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig#L95
您可以使用 "choice" 字段类型和选项:expanded => true
。并仅为您需要的表单创建自定义表单模板:
http://symfony.com/doc/current/cookbook/form/form_customization.html#what-are-form-themes
好的,我解决了我的问题。为了访问值变量,我必须使用以下 {{ child.vars.value }}
。有了这个,我现在可以获取变量并将其放入值标记中。
感谢您的帮助。
我有一个我无法解决的问题。我应该如何处理以下问题:我有一个包含 4 个不同条目的选择字段,我正在以 select 形式(树枝)完美呈现。但是,我想将 4 个条目显示为 4 个单独的按钮。如何更改这 4 个的输入类型?或者我必须做一些完全不同的事情吗?
感谢您的帮助 -AS
编辑(新问题):
Alexandru,感谢您的帮助。这很有帮助。 我在 fields.html.twig 中添加了以下内容:
{% block _appbundle_action_Style_widget -%}
{% for child in form %}
<input type="button" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
{% endfor %}
{%- endblock _appbundle_action_Style_widget %}
但是,当我渲染它时,它告诉我有一个数组到字符串的转换,但不知何故不起作用。当我删除小部件属性、值和选中的部分时,按钮将在没有这些的情况下呈现。
您有几个选项可供选择:
您可以创建一个新的字段类型,我们称之为 "button_group",它将扩展 "choice" 类型并为其编写自定义 Twig,如下所示: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig#L95
您可以使用 "choice" 字段类型和选项:
expanded => true
。并仅为您需要的表单创建自定义表单模板: http://symfony.com/doc/current/cookbook/form/form_customization.html#what-are-form-themes
好的,我解决了我的问题。为了访问值变量,我必须使用以下 {{ child.vars.value }}
。有了这个,我现在可以获取变量并将其放入值标记中。
感谢您的帮助。