conceptbyte/time-traveller

Laravel 模型的时光旅行。

安装: 90

依赖者: 0

建议者: 0

安全: 0

星星: 34

关注者: 4

分支: 2

开放问题: 2

类型:package

v1.0.1 2016-05-22 22:13 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:19:30 UTC


README

Laravel 5 模型的时光旅行。

  • 使用数据库表来存储模型状态。
  • 可以通过 ORM 或 URL 查询字符串访问。
  • 捆绑命令以保持修订表健康。
  • 可以覆盖修订模型进行扩展。

安装

在项目根目录下运行以下命令。composer require conceptbyte/time-traveller

将服务提供者添加到 config/app.php 文件中的 providers 键下。确保在默认的 Laravel 服务提供者之后添加它。

'providers' => [
    ...,
    'ConceptByte\TimeTraveller\TimeTravellerServiceProvider'
]

发布配置

运行 php artisan vendor:publish 以发布包配置。

修改配置

使用 config/timetraveller.php 文件来修改包默认值。

  • 修订模型 'model' => ConceptByte\TimeTraveller\Models\Revision::class
  • 查询字符串参数 'at' => 'at'
  • 清除超过 'clear' => '365' 的审计记录

用法

通过使用特质在模型上启用时光旅行。

class Post extents Model
{
    use TimeTravel;
    
    public function getBy()
    {
        return Auth::user()->name;
    }
}

所有使用该特质的所有模型都必须实现 abstract public function getBy(),它返回任何字符串。此函数可以用来保存任何其他属性,例如更改的所有者。

###获取特定日期/时间的记录状态。

Post::at('58781813')->find(1);

###使用查询字符串获取记录状态。

URL: timetravel.app/posts/1?at=58781813

Post::find(1);

###获取具有修订记录的模型

Post::with('revisions')->first();

###您可以清除超过指定范围的审计表记录。php artisan time-traveller:clear。这将读取配置文件并清除超过配置天数数量的记录。