承接 carlosdev/model-change-logger 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

carlosdev/model-change-logger

最新稳定版本:v2.0.0

Composer 安装命令:

composer require carlosdev/model-change-logger

包简介

Laravel package to log create, update, and delete events in Eloquent models with JSON snapshots and user attribution.

README 文档

README

CI

Leer en Espanol

Laravel library for recording changes (create, update, delete) in models.
Records JSON snapshots of changes, the responsible user, and the date of the change in a database table.

📦 Installation

Add the package to your project via Composer:

composer require carlosdev/model-change-logger

Make sure you have PHP 8.0+ and Laravel 10 - 13.

🔧 Configuration

Publish and run migrations:

php artisan migrate

Use the trait in the model you want to audit:

use CarlosDev\ModelChangeLogger\Traits\TracksChanges;

class JobOffer extends Model
{
    use TracksChanges;
}

(Optional) Audit only specific attributes: If you want to record only certain attributes, define the $auditFields property in your model:

protected array $auditFields = ['job_offer_status_id', 'title'];

🧪 Examples

Create

$post = Post::create([
        'title' => 'Hello World',
        'content' => 'First post',
]);

Recorded values:

{
    "event": "created",
    "old_value": null,
    "new_value": {
        "title": "Hello World",
        "content": "First post"
    }
}

Update

$post->update(['title' => 'New title']);

Recorded values:

{
    "event": "updated",
    "old_value": {
        "title": "Hello World"
    },
    "new_value": {
        "title": "New title"
    }
}

Delete

$post->delete();

Recorded values:

{
    "event": "deleted",
    "old_value": {
        "title": "New title",
        "content": "First post"
    },
    "new_value": null
}

🧠 What does it record?

  • JSON payload with old/new values for changed attributes on update().
  • JSON payload with all tracked attributes on create.
  • Deletions (delete and forceDelete), saving a JSON snapshot of tracked attributes in old_value.
  • Responsible user (Auth::id()).
  • Affected model and ID.
  • Date and time of the change.

📄 Structure of the model_changes table

Column Description
model_type Class of the affected model (App\Models\X)
model_id ID of the modified model
old_value Previous value
new_value New value
user_id ID of the user who made the change
event Type of event (updated, deleted, etc.)
changed_at Date and time of the change

✅ Compatibility

  • PHP: >= 8.0
  • Laravel: ^10.0 - ^13.0

📬 Contributions

Suggestions, improvements, and pull requests are welcome! 🚀

This package is designed for projects that require change traceability without depending on complex auditing packages.

📄 License

MIT © CarlosDev

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-03-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固