dekate / model-logger

表变更记录器

0.1.4 2024-08-12 02:06 UTC

This package is not auto-updated.

Last update: 2024-09-23 03:12:03 UTC


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之外的任何具有批量操作的内容,例如使用查询构建器的insertdelete
  • 任何使用原始查询的更改