Set expiration date for database records, like future deleted at columns

0.3 2017-08-03 09:04 UTC

This package is not auto-updated.

Last update: 2024-07-06 08:17:25 UTC



Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

A package to add expiration date to database records.


Via Composer

$ composer require createnl/expires


Your migration


Your model

class Model extends Eloquent
    use Createnl\Expires\Expirable
     * Indicates if the model should set an auto expire
     * @var bool
    protected static $autoExpire = true;
     * Indicates if the model should reset the expiration date on model update
     * @var bool
    protected static $autoExtend = true;
     * The amount of interval to be added to the
     * Please see ISO_8601 durations for correct markups
     * @var string (\DateInterval)
    protected static $autoExpireDate = 'P5Y';


// Get records with expired
$model->withExpired() : Builder;
// Get only expired records
$model->onlyExpired() : Builder;
// Update expiration date
$model->setExpiration(Carbon $date) : Model;
// Remove expiration date
$model->unExpire() : Model;
// Check if record is expired
$model->isExpired() : bool;
// Get carbon object of expiration date
$model->expiresAt() :? Carbon;
// Extend expiration by defined interval
$model->extendExpiration() : Model;
// Disable automatic setting of expiration date
Model::disableExpiring() : void;
// Enable automatic setting of expiration date
Model::enableExpiring() : void;

Custom expiration date logic

 * @override
 * Get Carbon object of parsed expiration date.
 * @return Carbon
public function expirationDate() : Carbon
    // @todo: Manipulate expiration date
    $interval = new \DateInterval(self::$autoExpireDate);
    return $this->freshTimestamp()->add($interval);

Change log

Please see CHANGELOG for more information on what has changed recently.


$ composer test


Please see CONTRIBUTING and CONDUCT for details.


If you discover any security related issues, please email instead of using the issue tracker.



The MIT License (MIT). Please see License File for more information.