簡體   English   中英

在laravel中遇到某些條件后,從db中刪除行

[英]Delete row from db after certain condition has been meet in laravel

我的表有數據id post_id description and dispose_time 如果當前時間和日期大於當前時間,我想從數據庫中刪除數據。

 $post = Post::delete()->where('dispose_time' > DATE_SUB(NOW())), INTERVAL 10 MINUTE));

這樣的事情。 它給了我錯誤,我的數據庫中的dispose_time是時間戳格式,如1555107000 任何幫助贊賞。

根據您提供的信息,您應該使用whereRaw方法,而不是where ,因為您使用SQL作為where子句。 此外, delete()應該是最后一個被調用的方法。 所以你的代碼如下:

Post::whereRaw("`dispose_time` > DATE_SUB(NOW(), INTERVAL 10 MINUTE)")->delete();

由於您使用的是Laravel,它附帶Carbon包,您還可以執行以下操作

Post::whereDate('dispose_time', '>', Carbon\Carbon::now()->addMinutes(-10))->delete();

最后使用delete子句,如下所示:

Post::where("dispose_time", ">", now()->addMinutes(-10)->toDateTimeString())->delete();

在laravel中使用碳時間。

$post = Post::where('dispose_time', '>', Carbon::now())->delete();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM