如何从symfony选择类型中获取选项

刘易斯

我有以下用例:

用户可以选择从下拉选项,但如果他们想选择别的东西,他们可以选择“其他”,这带来了一个JavaScript prompt(),然后将其添加为optionselect和选择。

落下

我的问题是关于如何在加载页面时将此值加载到select中。我可以看到我可以使用

 $builder->addEventListener(
    FormEvents::PRE_SET_DATA,

将多余的元素添加到列表中,但是如何获取现有元素的列表?我确定我不必再对它们进行编码,但是我找不到获取选项列表的途径。

这是下拉菜单的类别:

use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class HeatGeneratedFormType extends AbstractType
{
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(
            array('choices'=> 
                array(
                    null=> 'Select',
                    'Grasses / Straw'   => 'Grasses / Straw',
                    'Wood Chip' => 'Wood Chip',
                    'Wood Logs'   => 'Wood Logs',
                    'Wood Pellets'   => 'Wood Pellets',
                    'Other' => 'Other'
                    )
                )
            );
    }

    public function getParent()
    {
        return 'choice';
    }

    public function getName()
    {
        return 'HeatGenerated';
    }
}

因此,对于我的代码,请改写我的问题:

if (!in_array($object->getHeatGenerated(), $form->get('heatGenerated')->getChoices()) {
    $form->get('heatGenerated')->addChoice($object->getHeatGenerated());
}

->getChoices()->addChoice()不是真正的方法,我应该使用什么来获取和编辑的选项列表?

刘易斯

这是我所做的:

class MyFormType extends AbstractType
{  
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            // other fields chopped
            ->add('myField', new CustomChoiceFormType()) // This type has the preset choices
            ;

            $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
                $data = $event->getData();
                $form = $event->getForm();

                $choices = $form->get('myField')->getConfig()->getOption('choices');
                $choice = $data->getMyField();

                if (!in_array($choice, $choices)) {
                    $newChoices = array_merge($choices, array($choice=>$choice)); // Need to add the key and the value, for me these are the same, but ofcourse they could be different

                    $form->remove('myField');
                    $form->add('myField', 'choice', array('choices'=>$newChoices));
                }

            });
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Symfony 4.1 中设置选择选项名称?

来自分类Dev

如何从PHP中的数组的选择选项中获取值?

来自分类Dev

如何从webBrowser控件中当前选择的选项中获取innerText

来自分类Dev

如何从选择框中的选项中获取属性值

来自分类Dev

如何从数组中获取值并显示为选择列表选项

来自分类Dev

如何在jQuery中获取选择的选项元素attr?

来自分类Dev

如何从数据选择的输入选项中获取值?

来自分类Dev

我如何使用JavaScript获取选择选项中的值

来自分类Dev

如何在“选择”下拉列表中获取选定的选项值

来自分类Dev

如何在jQuery中获取选择的选项元素attr?

来自分类Dev

提交无效的选项时,Symfony选择字段类型报告“此值无效”。我该如何改变?

来自分类Dev

从特定选择中获取选择的选项值

来自分类Dev

C#Selenium:如何计算元素并从选择元素中获取选择的选项

来自分类Dev

如何从多个选择选项中获取所有选择的值?

来自分类Dev

C#Selenium:如何计算元素并从选择元素中获取选择的选项

来自分类Dev

使用symfony domcrawler获取选择选项值的列表

来自分类Dev

如何获取选择元素的选项值

来自分类Dev

如何获取选择选项的选定值?

来自分类Dev

如何通过选项值获取选择元素

来自分类Dev

Symfony2如何在选择实体字段中设置选项值

来自分类Dev

jQuery:获取多个选择中的选项数

来自分类Dev

从选择框中获取选定的选项 html

来自分类Dev

Symfony从表单类型的实体中创建选择

来自分类Dev

Symfony2如何使用细枝从选择字段中获取选择的值

来自分类Dev

jsoup-从html select的选项中获取选择的选项

来自分类Dev

我如何从带有Request.Form的ASP.NET MVC中的选择(多个)中获取所有选择的选项?

来自分类Dev

需要从选择组件中获取选择的选项

来自分类Dev

需要从选择组件中获取选择的选项

来自分类Dev

如何使用jQuery从多重选择中获取选定的选项值

Related 相关文章

  1. 1

    如何在 Symfony 4.1 中设置选择选项名称?

  2. 2

    如何从PHP中的数组的选择选项中获取值?

  3. 3

    如何从webBrowser控件中当前选择的选项中获取innerText

  4. 4

    如何从选择框中的选项中获取属性值

  5. 5

    如何从数组中获取值并显示为选择列表选项

  6. 6

    如何在jQuery中获取选择的选项元素attr?

  7. 7

    如何从数据选择的输入选项中获取值?

  8. 8

    我如何使用JavaScript获取选择选项中的值

  9. 9

    如何在“选择”下拉列表中获取选定的选项值

  10. 10

    如何在jQuery中获取选择的选项元素attr?

  11. 11

    提交无效的选项时,Symfony选择字段类型报告“此值无效”。我该如何改变?

  12. 12

    从特定选择中获取选择的选项值

  13. 13

    C#Selenium:如何计算元素并从选择元素中获取选择的选项

  14. 14

    如何从多个选择选项中获取所有选择的值?

  15. 15

    C#Selenium:如何计算元素并从选择元素中获取选择的选项

  16. 16

    使用symfony domcrawler获取选择选项值的列表

  17. 17

    如何获取选择元素的选项值

  18. 18

    如何获取选择选项的选定值?

  19. 19

    如何通过选项值获取选择元素

  20. 20

    Symfony2如何在选择实体字段中设置选项值

  21. 21

    jQuery:获取多个选择中的选项数

  22. 22

    从选择框中获取选定的选项 html

  23. 23

    Symfony从表单类型的实体中创建选择

  24. 24

    Symfony2如何使用细枝从选择字段中获取选择的值

  25. 25

    jsoup-从html select的选项中获取选择的选项

  26. 26

    我如何从带有Request.Form的ASP.NET MVC中的选择(多个)中获取所有选择的选项?

  27. 27

    需要从选择组件中获取选择的选项

  28. 28

    需要从选择组件中获取选择的选项

  29. 29

    如何使用jQuery从多重选择中获取选定的选项值

热门标签

归档