【问题标题】:Best practices: how to implement an invitation system in Zend Framework?最佳实践:如何在 Zend Framework 中实现邀请系统?
【发布时间】:2009-10-28 06:30:18
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 答案中有一些很好的评论。也许您可以评论他们为什么申请或不申请,以便我们帮助您解决问题?

标签: php zend-framework invitation


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 我喜欢你关于验证器的想法。这样我就可以更新表格,说数据库中有重复的条目。但是验证器是运行数据库查询的最佳场所吗?或者我应该在我的模型中创建一个函数来检查重复项并从验证器中调用该函数?
      • 我更喜欢模型中的检查方法。所以业务逻辑保持在它必须在的地方。
      【解决方案4】:

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

      但是,您似乎(据我所知)已准备好“重新发送邀请”按钮的所有信息,管理员可以单击该按钮重新发送邀请。我会在后端创建一些报告,让我可以查看已发送、已转换为用户以及尚未得到答复的邀请。在尚未回答的报告中添加一个重新发送个人邀请的按钮应该不会太难。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-24
          • 1970-01-01
          • 2011-04-23
          • 1970-01-01
          • 1970-01-01
          • 2011-01-27
          • 2010-09-22
          • 2012-05-19
          相关资源
          最近更新 更多