所以问题是我在页面A中有一个表单,它正在页面B提交。 在页面B验证表单后,它应该重定向回到页面A并显示包含可能发生的错误的表单。
实现这一目标的最佳方法是什么?临时将整个表单对象放入会话中是否明智?还是有更优雅的解决方案?
答案 0 :(得分:3)
为什么不在第A页验证它,然后如果它有效则转发到第B页?这样你就不必做任何丑陋的黑客攻击。
答案 1 :(得分:1)
正确的方法是将表单提交到同一页面,并且只有在它有效时才会通过Location:
标题重定向到下一页。
答案 2 :(得分:0)
听起来我觉得Page A是罪魁祸首。
当用户未登录时,您可以在页面A中保存页面A的URL,然后重定向到(唯一!)登录页面(页面B,对吧?),而不是在页面A上呈现登录表单。处理类似AuthController::loginAction()
。
验证失败后,您将其保留在登录页面上,显示验证错误和表单。成功验证/登录后,您检查会话以查看是否存在已保存的URL。如果是这样,请将他送到那里。如果没有,请将他送到您选择的某个地方,无论是他的个人资料页面还是主页,或者是某种恭喜您登录的页面。
明白我的意思?
答案 3 :(得分:0)
Zend_Form
包含getMessages
,getErrorMessages
和setErrors
,setErrorMessages
等方法。你可以尝试这样做 - 从未尝试过,但理论上应该有效:
Errors
装饰器生成。