如何通过symfony 1.4获取无效表单的原因?

时间:2013-04-10 11:04:12

标签: php symfony1 symfony-1.4 symfony-forms

我是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());不要发出任何消息。我该如何解决呢?

1 个答案:

答案 0 :(得分:5)

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

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

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

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

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