digitalcloud/laravel-blameable

Laravel 包,允许您在 Eloquent 模型上添加创建/更新属性

v1.1 2019-01-14 13:02 UTC

This package is auto-updated.

Last update: 2024-09-18 22:00:48 UTC


README

Latest Stable Version Total Downloads

Laravel Blameable.

此包允许您跟踪 Eloquent 模型的创建者、更新者和删除者。

安装

您可以通过 composer 安装此包

composer require digitalcloud/laravel-blameable

在 Laravel 5.5 中,服务提供程序将自动注册。在框架的旧版本中,只需将服务提供程序添加到 config/app.php 文件中

    'providers' => [
        DigitalCloud\Blameable\BlameableServiceProvider::class,
    ];

您可以使用以下命令发布配置文件

    php artisan vendor:publish --provider="DigitalCloud\Blameable\BlameableServiceProvider" --tag="config"

发布后,config/blameable.php 配置文件包含

<?php

return [
    'column_names' => [
        'createdByAttribute' => 'created_by',
        'updatedByAttribute' => 'updated_by',
        'deletedByAttribute' => 'deleted_by',
    ],
     'models' => [
         'user' => \App\User::class
     ]
];

您可以在该文件中更新列名,或者使用默认名称。如果您不使用默认的 Laravel App\User 模型,则需要提供模型类。

使用示例

首先,您需要将 DigitalCloud\Blameable\Traits\Blameable 特性添加到您的模型(s)中。例如

<?php

namespace App;

use DigitalCloud\Blameable\Traits\Blameable;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use Blameable;
}

然后,您需要确保模型的数据库表具有所需的列。幸运的是,我们提供了两种执行此任务的方法

  • 通过使用控制台命令并提供需要添加列的模型

      php artisan blameable:add-blameable-columns App\Post
  • 通过在具有 DigitalCloud\Blameable\Traits\Blameable 特性的模型上调用 addBlameableColumns()

      \App\Post::addBlameableColumns();

在模型中使用 DigitalCloud\Blameable\Traits\Blameable 后,包将在创建、更新和删除模型后自动填充这些列。

关系

要获取创建者/编辑器实例,可以使用

$post = \App\Post::find(1);
$creator = $post->creator;
$editor = $post->editor;
$deletor = $post->deletor;

注意

此包允许您使用 blameable() 函数将责任列添加到迁移中,例如

    Schema::table($table, function (Blueprint $table) {
        // this will add created_by, updated_by and updated_by columns on your table.
        $table->blameable();
    });