【问题标题】:Customize options in form select multiple [Symfony2]在表单中自定义选项选择多个 [Symfony2]
【发布时间】:2016-05-13 10:06:12
【问题描述】:

很久以来我一直在寻找解决我的问题的方法...... 当您在 Sf2 中进行选择多个时,它会呈现为这样

<select multiple="multiple">            
    <option value="1" selected="selected">something</option>
    <option value="3" selected="selected">something else</option>
</select>

我想找一些东西在每个选项之前添加一个复选框。 像这样,用户必须点击复选框来选择它。

这是我在表单生成器中的代码:

->add('projNats', EntityType::class, array(
          'class' => 'ITBundle:Nature',
          'label' => 'nature',
          'choice_label' => 'lib',
          'multiple' => true, 
          'required' => false))

理想情况下,我想要这样的东西,但它不起作用......

{% for nat in form.projNats %}
  <input type="checkbox"> {{ form_widget(nat) }}
{% endfor %}

我尝试自定义选择小部件,但没有成功。

{% block choice_widget_expanded %}
{% spaceless %}
    <div {{ block('widget_container_attributes') }}>
    {% for child in form %}
        <input type="checkbox"> {{ form_widget(child) }}
    {% endfor %}
    </div>
{% endspaceless %}
{% endblock choice_widget_expanded %}

也许用 symfony 太难或根本不可能做到这一点,我应该使用一些 javascript...

【问题讨论】:

  • 您尝试过expanded 选项吗?
  • 好的,现在我有了我想要的,但我不能像我想要的那样自定义选项。如果我想每行有一个选项......我应该怎么做?
  • 这是一个与您原来的帖子不同的问题。您可能应该发布一个新问题(我认为这比编辑这个更好,目标太不同了)。无论您决定什么,都应该将呈现的 HTML 放在您的问题中,因为这将有助于定义 CSS 规则。
  • 一切顺利

标签: forms symfony select twig


【解决方案1】:

您必须启用expanded option 才能显示复选框:

扩展

类型:boolean 默认:false

如果设置为 true,将呈现单选按钮或复选框 (取决于倍数)。如果为 false,则选择元素将是 渲染。

所以你应该使用这样的东西:

->add('projNats', EntityType::class, array(
      'class' => 'ITBundle:Nature',
      'label' => 'nature',
      'choice_label' => 'lib',
      'multiple' => true,
      'expanded' => true,
      'required' => false))

【讨论】:

  • 嗨!我不知道你为什么设置'choice_label' => 'lib'。有任何 Symfony 参考资料可以深入了解吗?
  • @NormaN 这是问题所在。用于在选择字段中显示属性:symfony.com/doc/4.4/reference/forms/types/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 2019-10-13
  • 2023-03-25
  • 1970-01-01
  • 2012-05-18
相关资源
最近更新 更多