gpt4 book ai didi

php - Symfony2 ajax Twig 表单错误

转载 作者:行者123 更新时间:2023-12-01 06:50:36 25 4
gpt4 key购买 nike

有一个关于如何在 Symfony2 中从 ajax 响应返回时正确输出表单提交错误的问题。

我通过ajax发布表单,如果表单填写不正确,它将使用以下代码发回带有错误的响应...

 $errors = $form->getErrorsAsString();
$return = array("responseCode"=>200, "responseVal"=>"Error", "errorReport"=>$errors);

这将创建一个错误数组和其他变量,如下所示:

 {"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"}

然后我使用 jQuery 将错误写入 div,如下所示:

 $("#errorReport").html(data.errorReport);

这给了我一个包含以下内容的 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

这看起来真的很俗气。无论如何,在 Twig 或 Symfony 中,我可以格式化这些错误,以便它们在传递回 Twig 模板时看起来很美观吗?我希望它看起来像这样,但我只是不知道它是如何完成的:

 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)

非常感谢您的帮助!!!

最佳答案

您应该使用 $form->getErrors() 方法而不是 $form->getErrorsAsString(); getErrors 函数返回 FormError 可用于创建错误消息的对象

所以代码看起来像这样

$errors = $form->getErrors();
$errorCollection = array();
foreach($errors as $error){
$errorCollection[] = $error->getMessageTemplate()
}
$return = array("responseCode"=>200, "responseVal"=>"Error", "errorReport"=>$errorCollection);

关于php - Symfony2 ajax Twig 表单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15581286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com