Удалить записи с датой истечения срока действия ниже текущей даты в Laravel? - PullRequest
0 голосов
/ 12 сентября 2018

Когда я нажимаю кнопку «Сохранить», он собирает сведения о задаче (имя, сообщение, период истечения), а затем вычисляет дату истечения срока действия с текущей даты, когда она была опубликована.

public function store(Request $request)
{
    $currentDate = date("m-d-Y H:i:s");
    $currentDate_timestamp = strtotime($currentDate);
    $endDate_months = strtotime($request->lapse_period, $currentDate_timestamp);
    $packageEndDate = date("m-d-Y H:i:s", $endDate_months);

    echo " <br> " . $packageEndDate . " <br> ";

    Task::create([
        'name' => $request->name,
        'message' => $request->message,
        'lapse_period' => $request->lapse_period,
        'expires_at' => $packageEndDate
    ]);

    return redirect()->back();
}

Тоработает, и вопрос: как я могу создать задачу, которая запускается каждую минуту и ​​удаляет все записи, срок действия которых меньше текущей даты?

Это то, что я пробовал в ядре, но через минуту ничего не происходит:

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        $currentDate = date("m-d-Y H:i:s");
        $tasks = Task::all();
        foreach ($tasks as $task) {
            if($date->expires_at < $currentDate) {
                $task->delete();
            }
        }
    })->everyMinute();
}

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Попробуйте код ниже:

protected function schedule(Schedule $schedule)
{
     $schedule->call(function () {
         Task::where('expires_at','<', Carbon::now())->delete();
     })->everyMinute();
}
0 голосов
/ 12 сентября 2018

попробуйте

protected function schedule(Schedule $schedule)
{
  $schedule->call(function () {
    $currentDate = \Carbon\Carbon::now();
    $tasks = Task::all();
    foreach ($tasks as $task) {
     $dateTask = new \Carbon\Carbon($task->expires_at);
        if($dateTask < $currentDate) {
            $task->delete();
        }
    }
  })->everyMinute();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...