Laravel跟踪一排的单个细胞

时间:2018-01-06 11:04:55

标签: php mysql laravel

为方便起见,laravel会在每张桌子上生成updated_at列,这真是太棒了。我可以轻松跟踪哪些已更新。但是如果我想在我的应用程序中引入日志/历史/活动功能呢?

目前,laravel回答了这个问题:

  

时更新了哪一行?

我如何得到这个问题的答案:

  

连续更新了什么

2 个答案:

答案 0 :(得分:2)

假设您希望跟踪用户表中的更改,那么您的架构看起来像

用户

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

现在,创建活动日志表,如

活动记录

public function up()
{
    Schema::create('activity_log', function (Blueprint $table) {
        $table->increments('id');
        $table->increments('user_id');
        $table->enum('changed_column',['name','email','password']);
        $table->timestamps();

        $table->foreign('user_id')->references('id')->on('users');
    });
}

现在,每当您更改用户列表时,请将更改了哪个列的详细信息添加到活动日志表中。根据时间戳,您可以跟踪用户的哪一列被更改。

我希望你明白。

答案 1 :(得分:0)

在其中一个表中,在json字段中保存最后更新的字段名称