【发布时间】: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 调用,请分享该代码
-
我正在使用邮递员,并且我正确提交了表单