Symfony2 表单的奇怪问题

Strange issue with Symfony2 form

当我重新加载页面时,我得到 true 作为方法调用的结果 isSubmited()

$form->handleRequest($request);

if ($form->isSubmitted() && $form->isValid()) {
    var_dump($form->getData());
    die;
}

输出为:

...["submit"]=> NULL...

这里应该是什么问题?

页面加载时,不应提交表单。

您应该检查请求是否为 POST:

if ($request->isMethod('POST')) {
    if ($form->isValid()) {
        var_dump($form->getData());
        die;
    }
}

在 Symfony 的视图中提交表单是将数据绑定到它,如果请求是 POST.

,则由 $form->handleRequest($request); 完成

handleRequest 方法从请求中获取 POST 的数据,处理它,然后 运行任何验证。实际上,它只对 GET 上的 POST 请求执行此操作 请求,$form->isSubmitted() returns false.

提示:如果您有通过其他 HTTP 方法提交的表单,请设置它们的方法。

更多详情: http://symfony.com/doc/current/reference/forms/types/form.html#method