最佳实践:如何在Zend Framework中实现邀请系统?

时间:2009-10-28 06:30:19

标签: php zend-framework invitation

我已经构建了大部分功能,现在我卡住了......

我正在创建一个私有的Web应用程序,该应用程序具有仅限邀请注册系统。管理员用户向用户发送电子邮件邀请,用户单击该链接,然后将其带到可以创建已链接到其电子邮件地址的帐户的页面。

提交表单并且没有任何验证错误时,数据将首次插入数据库。邀请表的电子邮件列是唯一的,因此这是用户需要的令牌,以验证他们是否有权创建帐户。

我很困惑的情况是管理员用户尝试向同一个电子邮件地址发送邀请。电子邮件地址列是唯一的,因此存在SQL错误。我不知道在将该记录插入数据库之前是否应该检查该电子邮件地址,或者我应该做什么。

我想为丢失或意外删除的电子邮件创建重新发送邀请功能。这就是为什么我不希望管理员用户能够向同一个人发送重复的电子邮件,而是他们应该使用重新发送功能。

我希望这一切都有意义。任何见解都将不胜感激。

5 个答案:

答案 0 :(得分:3)

我用纸和笔来形象化我真正想要的东西。如果流程清楚,我认为你可以做到;)

答案 1 :(得分:1)

我肯定会在您尝试插入之前添加一个检查以查看该地址是否已存在于数据库中。您可以捕获异常,但我更愿意明确测试是否存在电子邮件地址。

您的想法......当电子邮件地址已存在时,您可以让系统重新发送邀请。如果您这样做,您可以通过不必编写额外的“重新发送邀请”功能来减少一些代码重复。只需在初始邀请请求或其他人描述的“重新发送邀请”链接上调用相同的“发送邀请”功能。

我也喜欢其他人已经提到过“重新发送邀请”的想法,尤其是philipnorton42的实施。

答案 2 :(得分:1)

我会在您的表单中使用验证器,因此将根据您已存储的电子邮件检查电子邮件地址。所以应该没有重复的条目。此外,我将实现一个操作,列出所有输入的帐户以及一个漂亮的表中的创建和激活时间。当然,操作和视图将支持分页,因此您可以轻松浏览数据。如果尚未激活条目,则应该为此特殊条目重新发送电子邮件操作链接,也可能是图标。另一个将电子邮件重新发送到所有尚未激活的条目的操作将非常方便。最后但并非最不重要的是,我会实施报告行动,以便我能够轻松搞清楚最新情况。

答案 3 :(得分:0)

我会说Valter是正确的,你可能需要画出你想要完成的事情。

然而,您(从我所知道的)出现了“重新发送邀请”按钮的所有信息,管理员可以点击该按钮重新发送邀请。我会在后端创建一些报告,这些报告可以让我查看已发送,转换为用户以及尚未回答的邀请。添加一个按钮尚未回答报告,重发个人邀请不应该太难。

答案 4 :(得分:0)

嗯,我会创建一个视图,其中所有“激活”都可见,只需重新发送邀请的按钮?无需更改数据库中的记录。