在laravel中满足某些条件后从db中删除行

时间:2019-04-12 03:18:28

标签: laravel laravel-5.2 lumen lumen-5.4

我的表中有数据id post_id description and dispose_time。如果当前时间和日期大于当前时间,我想从数据库中删除数据。

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

类似这样的东西。它给了我错误,并且数据库中的dispose_time是时间戳格式,例如1555107000。 任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

根据您提供的信息,应该使用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();

答案 1 :(得分:0)

最后使用delete子句,像这样:

Enter number: 10
2
3
4
5
6
7
8
9
10
The total value of the list is:  None

答案 2 :(得分:0)

在laravel中使用Carbon作为时间。

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