dekate / model-logger
表变更记录器
0.1.4
2024-08-12 02:06 UTC
Requires
- php: ^8.0.2
README
跟踪模型的所有更改到其自己的表中。
目录
安装
安装包
composer require dekate/model-logger
发布配置和迁移
php artisan vendor:publish --tag=model-logger
使用
在你的模型中使用Dekate\ModelLogger\LogModel
特质
例如:
<?php namespace App\Models; use Dekate\ModelLogger\LogModel; use Illuminate\Database\Eloquent\Model; class MyModel extends Model { use LogModel; /** The rest of the code */ }
要禁用单个模型中特定操作的日志记录。在你的模型中添加protected $disableLog
。有效值是由C
(创建)、U
(更新)和D
(删除)组成的字符串。
class YourModel extends Model { use LogModel; // disable Create log protected $disableLog = "C"; }
class YourModel extends Model { use LogModel; // disable Create Delete protected $disableLog = "CD"; }
注意事项
关系
此特质不能跟踪关系中的sync()
操作。因此,我们提供了syncWithRelation
作为替代方案。
/** You can change */ $myModel->myRelation()->sync([]) /** To */ $myModel->syncWithRelation('myRelation', []);
用户ID
负责更改的用户通过auth()->id()
跟踪。因此,如果auth
为空或未使用,我们无法跟踪用户。
我们无法跟踪的内容
- 除了上面解释的
sync
之外的任何具有批量操作的内容,例如使用查询构建器的insert
或delete
。 - 任何使用原始查询的更改