Добрый день. Такая проблема. Проверяю активных юзеров, и если он не обновлялся больше трех месяцев, хочу сделать его архивным, меняя active на 0. Сделал такое условие с методом. Проверяю запуском сидера.
$users = User::where('active', 1)->whereDate('updated_at', '<=', date('Y-m-d H:i:s', strtotime('-90 days')))->get();
if (!empty($users)) {
foreach ($users as $user) {
if (!empty($user)) {
if ($user->active == 1) {
$user->active = 0;
$user->save();
}
}
}
}
При запуске этого сидера, если выполняется условие, его зацикливает, или еще чего. Висит он короче, помогает Ctrl+C. При этом первую подходящую запись в таблице он все таки обновляет. Если пробовать изменить другое поле, не active, все работает как задумано. Пробовал без всех этих ифов, только форич, тоже самое. В чем прикол и как исправить?