Cow*_*irl 4 php mysql cron laravel laravel-5
我有一个数据库表,从API中获取一些信息.
列是
id datetime name
10011 2018-01-26 something
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是删除此条目,因为它现在是过去的日期.
有没有办法在Laravel中指定一个cron作业,它会自动删除列 - 它有一个条目,datetime
哪个是过去的?
首先,我们将创建控制台命令:
php artisan make:command TruncateOldItems
$signature
为items:truncate
和包括在描述$description
从handle
方法中选择符合条件的所有项目,然后delete()
在它们上运行,例如:
public function handle()
{
Item::where('datetime', '<', Carbon::now())->each(function ($item) {
$item->delete();
});
}
Run Code Online (Sandbox Code Playgroud)然后我们将安排命令:
App\Console\Kernel.php
从schedule
方法中,安排您的命令:
$schedule->command('items:truncate')->everyMinute();
Run Code Online (Sandbox Code Playgroud)通过添加cron条目来启动调度程序:
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)注意:您需要换出Item
模型,并在命令类中包含模型和Carbon,use App\Item
并use Carbon\Carbon
在控制台命令类的顶部.
归档时间: |
|
查看次数: |
2832 次 |
最近记录: |