constant-null / eloquent-changed-by-user
为eloquent编写的这个简单特性允许你自动记录最后修改数据库记录的用户ID。
v0.1.1
2015-12-09 04:30 UTC
Requires
- php: >=5.4.0
- illuminate/database: ~5.0|~5.1
This package is not auto-updated.
Last update: 2024-09-12 00:08:09 UTC
README
请注意,此特性使用
Auth
外观,并期望它实现Illuminate\Contracts\Auth\Guard
协议
工作原理
实际上非常简单,在将行保存到数据库之前,此特性使用Auth::user()->id
获取当前用户的ID(这就是为什么有上述要求),并将其写入指定的数据库字段(更多详细信息请参阅 安装和配置 部分)
安装和配置
此特性可以通过composer
安装。只需将以下内容添加到您的composer.json
文件中
{ "require": { "constant-null/eloquent-changed-by": "~0.1" } }
然后运行
$ composer update
要开始使用此特性,您需要将其导入到Eloquent模型中
<?php use ConstantNull\Eloquent\Support\ChangedByUser; use Illuminate\Database\Eloquent\Model; class SomeModel extends Model { use ChangedByUser; /* The rest of the your class */ }
并在数据库中添加一个用于存储用户ID的列。例如
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class BestMigrationEver extends Migration { public function up() { Schema::table('some_table', function(Blueprint $table) { $table->integer('changed_by')->nullable(); }); }
如示例所示,用户ID的默认列名为changed_by
,但可以通过在类体中指定常量CHANGED_BY轻松更改。
例如,我想这个列名是'last_user_id'
<?php use ConstantNull\Eloquent\Support\ChangedByUser; use Illuminate\Database\Eloquent\Model; class SomeModel extends Model { use ChangedByUser; const CHANGED_BY = 'last_user_id'; /* Rest part of the your class */ }
这就是全部!