digitalcloud / laravel-blameable
Laravel 包,允许您在 Eloquent 模型上添加创建/更新属性
v1.1
2019-01-14 13:02 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-09-18 22:00:48 UTC
README
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(); });