conceptbyte / time-traveller
Laravel 模型的时光旅行。
v1.0.1
2016-05-22 22:13 UTC
Requires
- php: >=5.5.9
- illuminate/console: ~5.2
- illuminate/database: ~5.2
- illuminate/support: ~5.2
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。这将读取配置文件并清除超过配置天数数量的记录。