【问题标题】:Symfony4 form handleRequest not submitting request dataSymfony4表单handleRequest未提交请求数据
【发布时间】:2019-09-10 14:33:24
【问题描述】:

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

我尝试将“方法”选项设置为要发布的表单,但似乎没有帮助。我正在为 Content-type 和 Accept 使用 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 帖子:

标题: 内容类型:应用程序/json 接受:应用程序/json

身体: { “用户名”:“邓格拉斯” }

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

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

它返回假。 我做错了什么?

【问题讨论】:

  • 表单从前端提交,通过标准 http 请求(单击提交按钮)或使用 javascript ajax 调用,请分享该代码
  • 我正在使用邮递员,并且我正确提交了表单

标签: forms symfony4


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-02-03
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多