У меня есть две таблицы: шагов и потоков .
- шагов имеет много потоков.
- шагов имеет
relative_time
(строка) столбца. - потоков имеет столбец
active_on
(обнуляемый, отметка времени).
Шаги relative_time
хранят относительные форматы и их значения выглядят следующим образом:«+1 год», «+2 дня», «+30 дней» и т. Д.
Потоки active_on
устанавливается, когда пользователь активирует поток, и выглядит так: «2017-12-3000:00:00 ".
Каждый раз, когда я хочу знать, когда истечет поток , я выбираю его из базы данных и в PHP (Laravel, Carbon ), Я выполняю:
/**
* @return null|Carbon
*/
public function getExpiresAtAttribute()
{
if (!$this->active_on) {
return null;
}
// Access the relative time for step (for example: "+3 days").
$relativeTime = $this->step->relative_time;
// Adds the limit time to the activation date,
// turning it possible to check when the current flow
// will "expires".
return $this->active_on->modify($relativeTime);
}
Проблема
Легко проверить, истекает ли значение в PHP.Проблема в том, что теперь мне нужно выбрать только потоки, которые «просрочены» непосредственно из базы данных, и я не знаю, возможно ли это с помощью этого подхода.Как мне этого добиться?