Create Repeatable Models with Laravel Recurring Models
Published on by Paul Redmond
Sometimes you need data to repeat on a date interval, like a standing calendar appointment, a weekly event, or a payment schedule. The Recurring Models package for Laravel is the ultimate solution for adding recurring functionality to your Laravel Models:
$model->repeat()->daily();$model->repeat()->weekly(); $model->repeat()->weekly() ->on(['sunday', 'monday', 'tuesday']);
When you repeat a model, the start date is calculated using a startsAt()
method on the model. Or you can specify the start date as follows:
$model->repeat()->daily()->startsAt(Carbon::make());
You can also set an end date when the recurring model should stop:
$model->repeat()->daily()->endsAt( Carbon::make('2023-06-01'));
And once you have recurring data, you can retrieve it using the package's provided scopes:
$tasks = Task::whereOccurresOn( Carbon::make('2023-05-01'))->get(); // Between$tasks = Task::whereOccurresBetween( Carbon::make('2023-05-01'), Carbon::make('2023-05-30'))->get();
This new package could serve as an excellent inspiration for simplifying models that need repeating with dates. To get started with this package, check out the source code. on GitHub.