使用 Laravel Eloquent ORM 删除超过 30 天的行

Delete Rows Older than 30 Days Using Laravel Eloquent ORM

我正在尝试从我的数据库 table 中删除超过 30 天的记录。我没有执行代码,因为我想检查我是否做对了。

App\MyTable::whereDate( 'created_at', '<=', now()->subDays( 30 ) )->delete();

这是从 table 中删除超过 30 天的行的正确方法吗?此外,如果它发现零个记录超过 30 天会发生什么,它会抛出异常错误还是只是 运行 正常?

  1. 你打错了。尝试

MyTable::whereDate( 'created_at', '<=', now()->subDays(30))->delete();

  1. 它将运行优雅地

试试这个 -

$from= Carbon::now()->subDays(30)->toDateString();

$current = Carbon::now()->toDateString();

ModelName::whereBetween('created_at', array($diff,$current))
           ->delete();

希望这能完美运行!也请告诉我它是否有效!