【问题标题】:Publish created post on a certain date在特定日期发布创建的帖子
【发布时间】:2021-03-05 07:42:50
【问题描述】:

现在我有一个有效的帖子创建功能,可以创建帖子并向用户发送帖子已创建的通知。如果帖子的作者想在某个日期发布帖子,我该如何管理。假设他们填写了一个发布日期,我希望控制器在该发布日期上创建帖子。现在它只是创建帖子并立即发送通知。

public function create()
{
  $post = Post::create([
     'title'=>$request->title,
     'details'=>$request->details,
     'publish_date'=> $request->publish_date
  ]);    
  User::get()->each->notify(new PostCreated($post)); //sends notification to user using queue and redis
}

【问题讨论】:

标签: php laravel


【解决方案1】:
  1. 更改您的帖子表,添加列:publish_datestatus。第一列将包含您需要发布帖子的日期(DATETIME),第二列将包含帖子的状态(ENUM 或 SMALLINT)。您还可以将此列设置为 boolean,并将其命名为 is_published。但是,如果您将来需要添加更多帖子状态,我的变体更通用。

  2. 调度命令,它将检查帖子数据库记录中的日期,与当前日期进行比较,然后发布。

  3. 始终使用 try/catch 包装您的 create 方法。

  4. 记住单一职责。您的 create 方法应仅包含创建功能。如果要发送通知,请为此使用事件和事件侦听器。如果您将通知发送与事件侦听器绑定,您将从该列表的第 2 点转义预定命令中的重复代码。您的事件侦听器将侦听保存事件并处理发送通知的作业

【讨论】:

    猜你喜欢
    • 2015-05-30
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多