0

我是symfony的新手。我写了一个表单提交代码。

public function executeEdit(sfWebRequest $request)
    {
        $userId = $request->getParameter('id');
        $this->user = sfGuardUserTable::getUserById($userId);
        $this->form = new editOwnerForm($this->user);
        $this->paymentForm = new profilePaymentInfoForm($this->user->getPaymentInformation());

        if ($request->getMethod() == sfWebRequest::POST) {
            $this->form->bind($request->getParameter($this->form->getName()));
            if ($this->form->isValid()) {
                $this->form->save(); 
                $this->message = 'Successfully updated owner details';                               
            } else {
                var_dump($this->form->renderGlobalErrors()); die;
            }
        }
    }

我的表格总是无效的。(总是运行表单的其他部分有效)但我找不到原因。var_dump($this->form->renderGlobalErrors());不要给任何消息。我该如何解决它。?

4

1 回答 1

5

您需要从表单提交中找到错误...

调试栏的视图部分应以橙色显示并突出显示表单中的任何错误 - 只需单击“查看”,然后单击突出显示的表单字段。

如果没有,您可以尝试将您的 catch 块更改为类似的内容以进行调试:

foreach ($this->form as $key => $field) {
  $message = $field->renderError();
  if ($message) echo 'Error with field ', $key, ':', $message;
}

不包括 CSRF 字段是一个常见问题 - 您是否在部分表单中包含了对 $form->renderHiddenFields() 的调用?

于 2013-04-10T14:48:18.370 回答