如何做到这一点后,你设置的记录到期时间,它会自动删除。当你设置了一个特定的持续时间超过1年或6个月或15天,它会自动删除记录。我需要什么?
ccrfmcuu1#
这就是我的做法创建命令
php artisan make:command DeleteSchedule
<?php // App\Console\Commands\DeleteSchedule protected $signature = 'deleteschedule'; public function handle() { Model::where('created_at', '<', now()->subMonths(18)) ->delete(); }
每1天运行一次命令
// App\Console\Kernel protected function schedule(Schedule $schedule) { $schedule->command('deleteschedule') ->daily(); }
b5buobof2#
我不会使用命令,因为您只需每天运行一次,并且不会立即删除记录。这可能会导致一些问题,如显示同一天的旧记录,并处理它们,如果系统使用这些记录做一些事情之后。甚至这些记录的统计数据不会一直准确。我会亲自使用作业,并安排它们在记录到期时运行。这样,记录将在它们到期的同时被删除。
2条答案
按热度按时间ccrfmcuu1#
这就是我的做法
创建命令
每1天运行一次命令
b5buobof2#
我不会使用命令,因为您只需每天运行一次,并且不会立即删除记录。这可能会导致一些问题,如显示同一天的旧记录,并处理它们,如果系统使用这些记录做一些事情之后。甚至这些记录的统计数据不会一直准确。
我会亲自使用作业,并安排它们在记录到期时运行。这样,记录将在它们到期的同时被删除。