繁体   English   中英

在getForm()symfony2.8之后更改表单对象的默认参数的最佳实践

[英]Best practice for changing default parameter of form object after getForm() symfony2.8

我更新并总结了这个问题。

我想做的就是在getForm()之后更改form对象的默认值

public function newAction(Request $request)
{
    $task = new Task();   
    $form = $this->createFormBuilder($task)
        ->add('task', TextType::class,array('data' => 'default text data') // Set the default data for loaded first time. 
        ->add('save', SubmitType::class, array('label' => 'Save'))
        ->getForm();

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        //I want change the default value of task, I tried a few methods.
         $d = $form->getData();
         $form->get('task')->setData('replace text data'); // not work
         $d->setData('second data'); // notwork

    }

有可能吗?

Try this one.

 $builder->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $even) {
        $data = $event->getData();
        $form = $event->getForm();
        if (isset($data['task'])) {

            $data['task'] = "Default Task1";              
            $event->setData($data); 
        }
    });

暂无
暂无

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

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