【问题标题】:Laravel send notificaitons when article is publishedLaravel 在文章发布时发送通知
【发布时间】:2019-07-31 17:47:02
【问题描述】:

我有一个 Laravel 应用程序,用户可以在其中订阅博客标签,当文章添加到他们订阅的标签时,他们需要接收通知。但我们有特定的需求,使它变得更加复杂:

  • 一篇文章可以有很多标签(随时添加)
  • 一篇文章的发表日期可以是未来的
  • 文章可能处于草稿状态,因此访问者尚不可见

因此,如果管理员在草稿模式下创建文章,我们不应发送通知,直到它从草稿模式中删除并且发布日期已到。

我的问题是,因为我不知道管理员何时会删除草稿模式,所以我无法延迟创建排队通知。也因为他可以随时添加标签,我不能只在草稿模式被删除时发送所有通知,因为他可以稍后回来添加其他标签...

我想到的唯一选择是将发布之前发生的任何更改保存在数据透视表中,并在发布时发送所有通知。但是感觉有点怪。

我希望你们中的一些人拥有这种多状态模型,需要在用户可见时发布一些通知或执行一些操作...

【问题讨论】:

  • 您可以为此使用作业。当管理员更改标签或发布文章时,您将调度该事件。在工作的处理功能中,您完成所有检查并发送电子邮件。
  • @GiacomoM,您好,当管理员将发布日期设置为明天,明天结束时,您怎么办,没有人为操作,您需要发布工作
  • 您如何管理延期文章的发布?我想有一个cron命令。你可以使用它。

标签: php laravel


【解决方案1】:

我认为模型事件对你来说应该是一个很好的解决方案:

https://laravel.com/docs/5.8/eloquent#events

它让您有机会在创建/更新/删除模型之前(或之后)运行一些逻辑。因此,每次更新(或创建)post/tag/post_tag 时,您都可以检查它是否已发布或是否有新标签。

如果有帮助请告诉我!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 2019-11-11
    相关资源
    最近更新 更多