【问题标题】:How to debug form symfony field values disappearing after handleRequest()?如何调试在handleRequest()之后消失的表单symfony字段值?
【发布时间】:2020-05-11 01:10:26
【问题描述】:

问题类似这样:How to debug a Symfony2 form?

问题是 - 在发布数据时 - 数据在 $_POST 数组中。表单有字段,它们甚至还有一些值。

handleRequest 之后 - 这些值变为空值。

表单很大,现在需要做很多工作来最小化代码。我认为其他开发人员知道该去哪里寻找问题。

我尝试查看调试栏,但没有看到任何有用的信息 - 只是错误,其中一个字段未填充,这是不正确的,因为它位于 $_POST 数组中。

进入handleRequest 听起来也没有效率,因为其中有很多循环,而且里面的代码也不清楚。

我对 Symfony 3.4 有疑问。

【问题讨论】:

    标签: php forms symfony


    【解决方案1】:

    其中一种方法 - 检查你是否没有以错误的方式修改 $request。

    我需要从请求对象中取消设置一些数据

     if ($policyRef->getUser() !== null && $policyRef->getUser()->getHowDidYouHearAboutUs() !== null) {
                // this happens when existing account is signing up in checkout with oauth
                $postData = $request->request->all();
                unset($postData['checkout']['account_setup']['signup']['howDidYouHearAboutUs']);
                unset($postData['undefined']); // todo maybe in frontend unset?
                $request->request->set('checkout', $postData['checkout']);
            }
    

    通过xdebug进入handleRequest,发现表单包含额外字段'checkout'的错误。

    因为一开始我是这样做的:

     $request->request->set('checkout', $postData);
    

    调试栏中的Probalby也应该显示这个,但我没有注意,因为错误很少,我专注于其他领域。

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-17
      • 2014-09-23
      相关资源
      最近更新 更多