constant-null/eloquent-changed-by-user

为eloquent编写的这个简单特性允许你自动记录最后修改数据库记录的用户ID。

v0.1.1 2015-12-09 04:30 UTC

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 */
}

这就是全部!