【问题标题】:Symfony2 choice field "This value is not valid."Symfony2 选择字段“此值无效。”
【发布时间】:2014-05-10 00:43:45
【问题描述】:

我对动态表单有疑问。

我有两个选择。首先(名称:控制器)具有静态值。第二个(名称:驱动程序)具有基于第一个选择值的动态值。当我更改第一个选择时,第二个会生成新值。一切都会好起来的,但表格不想保存。 我遇到了这个错误:

此值无效。

我的表单生成器:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('controller', null, array(
            'attr' => array(
                'id' => 'controller',
                'class' => 'form-control'
            )
        ))
        ->add('driver', 'choice', array(
            'required' =>  false,
            'choices' => array(),
            'attr' => array(
                'id' => 'driver',
                'class' => 'form-control'
            )
        ))
        ->add('update', 'submit', array(
            'label' => 'form.btn.edit',
            'attr' => array(
                'class' => 'btn btn-default'
            )
        ))
    ;
}

/**
 * @param OptionsResolverInterface $resolver
 */
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(   
        'data_class' => 'My\ControllerBundle\Entity\Event'
    ));
}

为什么我不能保存?

【问题讨论】:

    标签: forms symfony dynamic


    【解决方案1】:

    我猜问题是驱动程序字段在选择中有一个空数组。要根据其他字段动态,您应该使用表单事件:

    http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

    并使用事件动态添加驱动字段。

    这是一个可以帮助你的帖子:

    http://showmethecode.es/php/symfony/symfony2-4-dependent-forms/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      相关资源
      最近更新 更多