【问题标题】:POST error 500: Internal server errorPOST 错误 500:内部服务器错误
【发布时间】:2011-12-21 14:24:07
【问题描述】:

我正在尝试使用 Symfony2 构建一个表单,当我单击按钮提交表单时,我得到一个带有 500 内部服务器错误的 POST 方法。

这是我的控制器上验证表单的代码:

if ($request->getMethod() == 'POST')
    {
        $form->bindRequest($request);
        if ($form->isValid())
        {

            $em = $this->getDoctrine()->getEntityManager();             
            $em->persist($group);
            $em->flush();
            return $this->redirect($this->generateUrl('index'));
        }
    }

在视图中:

    <form action="{{ path('new') }}" method="post" {{ form_enctype(form) }}>
<div class="actions">
          <input type="submit" value="OK"/>
        </div>

但我从表格中没有收到任何信息。有人可以帮助我吗?这真是个奇怪的错误。

【问题讨论】:

  • $group 最初定义在哪里?另外,实际的错误是什么?你检查你的服务器日志了吗?
  • $group 是我的实体,我可以提供更多信息:Warning: array_replace_recursive(): Argument #1 is not an array in /home/public_html/vendor/symfony/src/Symfony/Component/Form/Form.php line 583
  • 您是否提交了表单中的任何数据?如果没有,请尝试。如果这不起作用,您可以在$request-&gt;request-&gt;get($form-&gt;getName()) 上进行var_dump 或其他类型的测试并让我们知道那里有什么吗? bindRequest 方法令人窒息。
  • 我不认为这是导致您的问题的原因,但您的表单不会正确验证。您需要输出隐藏字段,尤其是 CSRF 令牌。
  • var_dump($request->request->get($form->getName()));显示 NULL 值。

标签: forms symfony post


【解决方案1】:

我在表单处理方面也遇到了同样的问题。

解决方法是手动清除缓存,然后重新预热。

php 应用程序/控制台缓存:清除 ==> 对我不起作用,所以我这样做:
rm -rf 应用程序/缓存/开发
php 应用程序/控制台缓存:预热

这解决了问题!

但是问题是什么? 我发现抛出 500 Internal Server Error get 是因为它尝试在 app/cache/dev/annotations 中加载缓存的路由值(在我的情况下)

提示:我之前在控制器中使用过注解进行模板和路由。比我改变了这个,现在我正在使用外部文件路由......那是我的痛苦......我忘记了清除缓存手动!!!

【讨论】:

    猜你喜欢
    • 2018-01-06
    • 1970-01-01
    • 2014-09-24
    • 2020-10-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多