【问题标题】:Prevent radio widgets from rendering labels with Symfony2使用 Symfony2 防止收音机小部件呈现标签
【发布时间】:2012-11-14 17:25:18
【问题描述】:

我想在没有标签的情况下呈现这个表单元素,但我找不到方法...

$builder
    ->add('gender', 'choice', array(
        'expanded'   => true,
        'choices'    => array(
            'Male' => 'm',
            'Female' => 'f',
            )
        ))
;

请帮忙,这不起作用:

{% block choice_widget %}
    {% spaceless %}
        {% for child in form %}
            <input type="radio" value="{{ child.get('value') }}">
        {% endfor %}
    {% endspaceless %}
{% endblock choice_widget %}

我收到Array to string conversion

我想做的是基于图像的性别选择器,只需单击图像即可进行选择。

【问题讨论】:

  • 我现在在想,我可以只渲染标签以在其中加载图像并隐藏输入。但是我有同样的问题,我怎样才能隐藏输入并显示标签?
  • 如何呈现表单视图?可以贴一下树枝代码吗?

标签: symfony twig


【解决方案1】:

使用表单组件时,永远不要自己渲染表单字段,始终依赖form_ 帮助器,如form documentation 中所述。

在你的情况下,这应该有效:

{{ form_label(form.gender) }}
{{ form_errors(form.gender) }}

{% for choiceFormView in form.gender %}
    {{ form_widget(choiceFormView) }}
{% endfor %}

【讨论】:

  • 在 for 循环中使用 form_label 而不是 form_widget
  • 我使用了这个,但它没有看到单选按钮,而是将选项显示为下拉框??如何使用单选按钮?
  • @AdrienBrault 我正在尝试自定义标签的 html,当它是小部件标签而不是行标签时。我怎样才能区分这两者?即,我如何识别标签是用于单选按钮而不是用于一般表单行?
猜你喜欢
  • 2012-01-09
  • 2020-10-20
  • 1970-01-01
  • 2011-06-14
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 2019-10-18
相关资源
最近更新 更多