Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel如何在创建7天后删除数据库记录_Php_Mysql_Sql_Laravel_Eloquent - Fatal编程技术网

Php Laravel如何在创建7天后删除数据库记录

Php Laravel如何在创建7天后删除数据库记录,php,mysql,sql,laravel,eloquent,Php,Mysql,Sql,Laravel,Eloquent,如何自动删除7天后创建的数据库记录?我必须把它放在index.blade.php或其他什么地方吗?也许有什么计划 public function index() { $results = Test::orderBy('created_at', 'desc')->take(5)->get(); if (!Auth::user()->isAdmin()) { $results = $results->where('user_id', '=',

如何自动删除7天后创建的数据库记录?我必须把它放在index.blade.php或其他什么地方吗?也许有什么计划

public function index()
{
    $results = Test::orderBy('created_at', 'desc')->take(5)->get();
    if (!Auth::user()->isAdmin()) {
        $results = $results->where('user_id', '=', Auth::id());
    }
    return view('results.index', compact('results'));
}

$stale_posts=Test::where('updated_at',”
$stale_posts=Test::where('updated_at',”您可以使用Laravel任务调度来完成此任务

安排每周运行的任务,删除帖子

任务在
App\Console\Kernel
类的
schedule
方法中定义

您可以在此处定义一个闭包:

protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
            Test::where('updated_at', '<', Carbon::now()->subDays(7))->delete();
        })->weekly();
    }

这将检查到期的任务并相应地运行它们


希望有帮助。如果您有任何疑问,请随时询问。

您可以使用Laravel任务调度来完成此任务

安排每周运行的任务,删除帖子

任务在
App\Console\Kernel
类的
schedule
方法中定义

您可以在此处定义一个闭包:

protected function schedule(Schedule $schedule)
    {
        $schedule->call(function () {
            Test::where('updated_at', '<', Carbon::now()->subDays(7))->delete();
        })->weekly();
    }

这将检查到期的任务并相应地运行它们


希望有帮助。如果您有任何疑问,请随时询问。

要使事情以我认为您的意思的方式自动进行,您可能需要设置一个计划任务。您可以创建一个简单的Artisan命令来执行检查并非常快地删除记录

然后,您可以每隔一段时间从调度程序调用此任务。一天一次可能很好,这取决于数据库范围的准确性有多重要


如果缺少cron或其他可以自动调用调度程序的选项,您将不得不手动调用它,或者以某种方式使用传入的请求作为可能在某个时间间隔运行此任务的一种方式。如果您有一个队列,您可以启动一个作业,将此任务发送到队列。

要以我认为您的方式自动执行此任务也就是说,您可能想要设置一个计划任务。您可以创建一个简单的Artisan命令来执行检查并快速删除记录

然后,您可以每隔一段时间从调度程序调用此任务。一天一次可能很好,这取决于数据库范围的准确性有多重要


如果缺少诸如cron或其他可以自动调用调度程序的选项,您将不得不手动调用它,或者以某种方式使用传入的请求作为可能在某个时间间隔运行此任务的一种方式。如果您有一个队列,您可以启动一个作业将此任务发送到队列。

cron作业可以为您在linux上执行此任务平台。但是,您提供的代码片段似乎没有表明您的意图。我没有使用Linux平台。但我会研究一下。谢谢您。您使用的是什么平台?对不起,先生,我也不明白。我只是使用本地的Wampserver。@NimeshkaSrimal我忘了我很抱歉。谢谢您提醒我。Cron jobs会这样做的如果您是在linux平台上,则为您提供。但是,您提供的代码片段似乎没有表明您的意图。我不是在使用linux平台。但我会研究一下。谢谢您。您使用的是什么平台?对不起,先生,我也不明白。我只是在使用本地Wampserver。@NimeshkaSrimal我忘了,对不起。谢谢您提醒我我相信。
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1