繁体   English   中英

Symfony2中表单字段的动态更改属性

[英]Dynamic change properties of form field in Symfony2

我有这段代码:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', ['required' => true])
        ->add('item', ['required' => true])
        ->add('isItem', ['empty_value' => true])
        ->sdd('submit')
    ;
}

其中: nameitem是字符串, isItem是布尔字段。 我想基于isItem值动态更改项目字段的属性。

这可以通过使用Form Events文档 )来实现。

例如,您可以像这样监听FormEvents::PRE_SUBMIT事件:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', ['required' => true])
        ->add('item', ['required' => true])
        ->add('isItem', ['empty_value' => true])
        ->sdd('submit')
    ;

    $builder->addEventListener(FormEvents::PRE_SUBMIT, array($this, 'onPreSubmit'));
}

public function onPreSubmit(FormEvent $event)
{
    $data   = $event->getData();
    $form   = $event->getForm();
    $entity = $form->getData();

    if ($data['isItem']) {
        // do something
    } else
        // do something else
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM