我怎么能得到一个无效的形式与symfony 1.4的原因


How can I get the reason for an invalid form with symfony 1.4?

我是交响乐新手。我编写了一个表单提交代码。

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;
            }
        }
    }

我的表单总是无效的。(总是运行else部分的形式有效)但是我找不到原因。var_dump($this->form->renderGlobalErrors());不给任何留言。我怎样才能修好它?

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

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

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

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

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