我是交响乐新手。我编写了一个表单提交代码。
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()在你的表单部分?