Lar*_*una 1 php ajax jquery symfony twig
有一个问题,当他们从ajax响应中返回时,如何在Symfony2中正确输出表单提交错误.
我通过ajax发布表单,如果表单没有正确填写,它将使用以下代码发回错误的响应...
$errors = $form->getErrorsAsString();
$return = array("responseCode"=>200, "responseVal"=>"Error", "errorReport"=>$errors);
Run Code Online (Sandbox Code Playgroud)
这将创建一个错误数组和其他变量,如下所示:
{"responseCode":200,"responseVal":"Error","errorReport":"ERROR: Name cannot be blank.\nERROR: Address cannot be blank.\nERROR: City cannot be blank.\nERROR: State cannot be blank.\nERROR: Zip cannot be blank.\nERROR: Phone cannot be blank.\nERROR: Email cannot be blank.\nname:\n No errors\naddress:\n No errors\ncity:\n No errors\nstate:\n No errors\nzip:\n No errors\nemail:\n No errors\nfax:\n No errors\nphone:\n No errors\n"}
Run Code Online (Sandbox Code Playgroud)
然后我使用jQuery将错误写入div,如下所示:
$("#errorReport").html(data.errorReport);
Run Code Online (Sandbox Code Playgroud)
这给了我一个div,内容如下:
ERROR: Name cannot be blank. ERROR: Address cannot be blank. ERROR: City cannot be blank. ERROR: State cannot be blank. ERROR: Zip cannot be blank. ERROR: Phone cannot be blank. ERROR: Email cannot be blank. name: No errors address: No errors city: No errors state: No errors zip: No errors email: No errors fax: No errors phone: No errors
Run Code Online (Sandbox Code Playgroud)
这看起来很俗气.无论如何在Twig或Symfony中我可以格式化这些错误,以便它们在传递回树枝模板时看起来很漂亮吗?我希望它看起来像这样,但我只是不知道它是如何完成的:
Name cannot be blank.
Address cannot be blank.
City cannot be blank.
State cannot be blank.
Zip cannot be blank.
Phone cannot be blank.
Email cannot be blank.
(any of the "No errors" would not be shown)
Run Code Online (Sandbox Code Playgroud)
非常感谢你的帮助!!!
您应该使用该$form->getErrors()方法而不是$form->getErrorsAsString(); getErrors函数返回FormErrorObject,它可用于创建错误消息
所以代码看起来像这样
$errors = $form->getErrors();
$errorCollection = array();
foreach($errors as $error){
$errorCollection[] = $error->getMessageTemplate()
}
$return = array("responseCode"=>200, "responseVal"=>"Error", "errorReport"=>$errorCollection);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3454 次 |
| 最近记录: |