编程

[Laravel 扩展包]Laravel Rewind - Eloquent 的版本控制包

47 2025-03-03 14:14:00

Laravel Rewind 是 Jared Cannon 创建的为 Eloquent 模型提供的一个强大而高效的版本控制包。此包存储模型数据的部分差异和完整快照的组合。Rewind 将自动确定当前版本、可用快照和目标之间的最短路径:

// 旧的标题: 'Old Title'
$post->title = 'New Title';
$post->save();
 
// 标题回退到 'Old Title'
Rewind::rewind($post);

$post->title = 'Rewind is Awesome!';
$post->save();

要在模型上启用版本跟踪,只需在模型上设置 Requireable trait 即可:

use AvocetShores\LaravelRewind\Concerns\Rewindable;
 
class Post extends Model
{
   use Rewindable;
}

主特性

  • 倒退到特定版本
  • 快进一个或多个版本
  • 将模型移动到特定版本
  • 线程安全防止模型覆盖
  • 从版本控制中排除属性
  • 从特定版本中创建属性
  • 在特定版本中克隆模型
  • 等等...

有关更多详细信息,请访问 laravel-rewind GitHub存储库,并探索其丰富的文档和示例。你可以使用以下命令使用 Composer 安装此软件包:

composer require avocet-shores/laravel-rewind

php artisan vendor:publish --provider="AvocetShores\LaravelRewind\LaravelRewindServiceProvider"

php artisan migrate