繁体   English   中英

Laravel检查超过特定日期的文章

[英]Laravel checking articles older than a certain date

在我正在从事的项目中,我有一个区域可以上传文章。 为了测试性能,我使用Faker生成了2500条文章。 我得出的结论是,我应该剔除年龄超过x天或几个月的文章。

我拥有的所有文章均具有发布状态:“已发布”,“草稿”和“已存档”,这存储在文章数据库表中。

我将建立一个计划任务,该任务每月运行一次,以检查旧文章,然后将这些文章设置为已存档。

在Laravel中,我知道我可以做这样的事情:

$articles = Article::where('created_at', '<=', Carbon::now()->subDays(182));
$articles->published = 'archived';
$articles->save();

但实际上,我追求的是:

UPDATE articles SET published = 'archived' WHERE created_at > <6 months>

这可能真的非常简单,也许我只是过于复杂,但是我一直盯着它看了90分钟。

您可以在更新方法中使用where子句,如下所示:

Article::where('created_at', '<=', Carbon::now()->subMonths(6))->update(['published' => 'archived']);

假设您published属性是可填充的。 还值得注意的是,该方法不会触发任何雄辩的事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM