【问题标题】:How to implement the event listener to a radio button on Symfony2?如何为 Symfony2 上的单选按钮实现事件侦听器?
【发布时间】:2012-07-07 22:43:56
【问题描述】:

这是我的表格

public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('nombreBD','text', array( 'required' => true, 'label' => 'Nombre Base de Datos: '))
            ->add('Servidor', 'choice', array(
                            'choices'   => array('1' => 'Si', '0' => 'No'),
                            'required'  => true,
                            'multiple'  => false,
                            'expanded'  => true,
                            'label' => 'Servidor Existente?'
                  ))
            ->add('ServidorBD','entity',
                  array ('class' => 'MonseWebBundle:ServidoresBD',
                        'multiple' => true, 
                        'required' => true, 
                        'label' => 'Servidor de Base de Datos: ',
                         'query_builder' => function(EntityRepository $er) {
                         return $er->createQueryBuilder('u')
                         ->orderBy('u.url', 'ASC');
                                                                           },
                         ))
            ;
    }

我想要做的是,如果用户在单选按钮中选择“否”,则“ServidorBD”实体不应显示,而应显示另一个表单(动态加载或将用户重定向到另一个表单url) 添加一个新的。 因为我是 Symfony2 的新手,所以我不太明白如何将事件监听器附加到“单选按钮”,也不明白如何在发生这种情况时显示另一位表单而不是“ServidorBD”。

请帮忙! T-T

【问题讨论】:

    标签: forms events symfony radio-button


    【解决方案1】:

    您要做的是根据您将绑定在表单上的数据动态构建表单。

    在 Symfony 2.0.x 或 2.1.x 中,表单组件在绑定数据后无法更改表单结构。这将在 Symfony 2.2 中完成。

    看到这个问题:https://github.com/symfony/symfony/issues/3767

    因此,目前,您不能使用表单事件侦听器来存档此用例。

    【讨论】:

    • 好的,还有这个吗?我的意思是,我怎么知道单选按钮是否被选中?是否可以隐藏“ServidorBD”位以防万一?或者是否可以将选项添加到列表中以“添加”新的 ServidorBD?我真的需要以某种方式做到这一点:(
    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    相关资源
    最近更新 更多