polashmahmud / history
一个简单的Laravel历史记录包
v0.0.5
2023-12-10 08:41 UTC
Requires
- php: ^7.2.5|^8.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0
Suggests
- illuminate/database: The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0).
README
历史跟踪系统是一个Laravel包,为您的Eloquent模型提供历史跟踪功能。通过这个简单且灵活的包,轻松为您的模型添加和管理历史记录。
特性
- 历史跟踪:将历史与您的Eloquent模型关联。
- 历史跟踪特性:使用HistoryTracking特性轻松使模型可历史跟踪。
安装
要安装历史跟踪系统,只需运行
composer require polashmahmud/history
Laravel使用包自动发现,因此不需要您手动添加ServiceProvider。如果您不使用自动发现,请在config/app.php中的providers数组中添加ServiceProvider
Polashmahmud\History\HistoryTrackingServiceProvider::class,
然后,迁移您的数据库
php artisan migrate
使用方法
历史跟踪模型
要使模型可历史跟踪,请在模型上使用Polashmahmud\History\Historyable
特性
use Polashmahmud\History\Historyable; class Post extends Model { use Historyable; }
这就完成了!现在您的模型可历史跟踪了。当模型更新时,将为其创建历史记录。历史记录将包含模型的旧值和新值。历史记录还将包含更改的用户。如果用户未登录,历史记录将包含用户的IP地址。
检索历史记录
要检索模型的历史记录,请使用history
方法
$post = Post::find(1); $history = $post->history;
history
方法将返回历史记录集合。每个历史记录将包含模型的旧值和新值、更改用户以及更改的日期和时间。
使用changedBy
方法查询由特定用户制作的历史记录
$history = $post->history()->with('changedBy')->get();
历史跟踪忽略列
默认情况下,updated_at
、password
、remember_token
和email_verified_at
列被忽略历史跟踪。如果您想忽略更多列,可以在模型中使用ignoreHistoryColumns
函数。
use Polashmahmud\History\Historyable; class Post extends Model { use Historyable; public function ignoreHistoryColumns() { return [ // 'column_name', ]; } }
历史跟踪作用域
历史跟踪系统提供了一些有用的作用域,以帮助您检索历史记录。
即将推出...
贡献
感谢您考虑为历史跟踪做出贡献!有关详细信息,请参阅CONTRIBUTING。
许可
历史跟踪是开源软件,许可协议为MIT许可。