我是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());
不要发出任何消息。我该如何解决呢?
答案 0 :(得分:5)
您需要从表单提交中找到错误...
调试栏的视图部分应以橙色显示并突出显示表单中的任何错误 - 只需点击“查看”,然后点击突出显示的表单字段。
如果没有,您可以尝试将catch块更改为类似的内容以进行调试:
foreach ($this->form as $key => $field) {
$message = $field->renderError();
if ($message) echo 'Error with field ', $key, ':', $message;
}
不包括CSRF字段是一个常见问题 - 您是否在表单部分中包含了对$ form-> renderHiddenFields()的调用?