【发布时间】: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->request->get($form->getName())上进行var_dump或其他类型的测试并让我们知道那里有什么吗?bindRequest方法令人窒息。 -
我不认为这是导致您的问题的原因,但您的表单不会正确验证。您需要输出隐藏字段,尤其是 CSRF 令牌。
-
var_dump($request->request->get($form->getName()));显示 NULL 值。