Иногда вам нужно повторять данные в интервале дат, например постоянная встреча в календаре, еженедельное событие или график платежей. Пакет повторяющихся моделей для Laravel — это идеальное решение для добавления повторяющихся функций в модели Laravel:
$model->repeat()->daily();
$model->repeat()->weekly();
$model->repeat()->weekly()
->on(['sunday', 'monday', 'tuesday']);
При повторении модели дата начала вычисляется с помощью startsAt()
метода модели. Или вы можете указать дату начала следующим образом:Вы также можете установить конечную дату, когда повторяющаяся модель должна остановиться:И как только у вас есть повторяющиеся данные, вы можете получить их, используя предоставленные пакетом области:
$model->repeat()->daily()->startsAt(Carbon::make());
$model->repeat()->daily()->endsAt(
Carbon::make('2023-06-01')
);
$tasks = Task::whereOccurresOn(
Carbon::make('2023-05-01')
)->get();
// Between
$tasks = Task::whereOccurresBetween(
Carbon::make('2023-05-01'),
Carbon::make('2023-05-30')
)->get();
Этот новый пакет может послужить отличным источником вдохновения для упрощения моделей, которые нуждаются в повторении с датами. Чтобы начать работу с этим пакетом, ознакомьтесь с исходным кодом. на GitHub.