Symfony4表单handleRequest未提交请求数据

时间:2019-09-10 14:33:24

标签: forms symfony4

当我在symfony4中提交json http post请求时,请求处理未提交我的表单。

我尝试将“方法”选项设置为要发布的表单,但似乎无济于事。我正在为内容类型和接受使用application / json标头。

表格:

class SecurityUserForm extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('username', TextType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
                'data_class' => SecurityUser::class,
                'csrf_protection' => false,
            ]
        );
    }

}

控制器:

    public function postAction(Request $request,  SerializerInterface $serializer, UserPasswordEncoderInterface $encoder)
    {
        try {
            $user = new SecurityUser();
            $form = $this->createForm(SecurityUserForm::class, $user,
                array(
                    'method' => 'POST'
                ));
            $form->handleRequest($request); //NOT SUBMITTING THE FORM
            if ($form->isSubmitted() && $form->isValid()) {
                dump("submitted");
            } else {
                //Stuff
            }

        } catch (\Exception $e) {
            //Exception handling stuff
        }
    }

我的http帖子:

标题:   内容类型:application / json   接受:application / json

身体: {     “用户名”:“粪便” }

我希望$ form-> handleRequest($ request)提交表单,但是由于某种原因,它没有提交。当我在处理请求后转储

dump($form->isSubmitted()) //false

它返回false。 我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您需要将$form->handleRequest($request);更改为$form->submit($request->request->all());