我正在创建一个处理注册过程的模块,该模块需要用户支付一定的注册费。基本流程是1)用户在第一页输入个人信息,并将表格发布到第二页2)用户在第二页中查看包含贝宝按钮的信息。 3)确认后,用户点击PayPal按钮并重定向PayPal支付页面4)如果交易完成,用户被重定向到成功页面,如果交易未完成,则被重定向到取消页面。我创建了一个名为'registration'的表,其中包含注册的一般信息,例如id,寄存器名称等。在'PostAction'函数(与第二页相关)中,我使用发布的信息设置模型属性表单,但不要调用我认为应该在SuccesAction中完成的save()方法(与成功页面相关)。我的问题是如何在SuccessAction中获取对模型对象的引用,因此我可以使用save()方法将其插入到数据库中。此外,欢迎任何改进该模块的建议或想法。
答案 0 :(得分:2)
“postAction”页面完成后立即处理注册对象/模型。除非已将保存在某处,否则您无法取回它。那个地方可能是一个会话变量,但是那些可以在你最不期望的时候到期(参见Finagle's Law),因此保存到数据库会更好。无论是单独的表格还是通过标记状态来显示注册表尚未完成 - “successAction”将通过设置该标记然后再次保存来完成该过程。
作为一个例子,考虑订单如何通过结账。在客户到达最后一步并提交订单之前,它只是一个引用,并且到目前为止已保存在sales_flat_quote
表中。在此之后,它将保存在sales_flat_order
中。