簡體   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