sucohi/back-then

一个用于管理数据库修订版本的 Laravel 扩展包。

1.0.3 2017-05-23 20:09 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:44:39 UTC


README

一个用于管理数据库修订版本的 Laravel 扩展包。(此包适用于 Laravel 5+)

安装

执行以下 composer 命令。

composer require sukohi/back-then:1.*

然后在你的 config/app.php 中设置 BackThenServiceProvider。

Sukohi\BackThen\BackThenServiceProvider::class, 

准备

为此包创建一个表,执行以下命令。

php artisan vendor:publish --provider="Sukohi\BackThen\BackThenServiceProvider"

php artisan migrate

BackThenTrait 添加到你的模型中,如下所示。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Sukohi\BackThen\BackThenTrait;

class Product extends Model
{
    use BackThenTrait;

这样就完成了。
现在,当你创建、更新或删除记录时,此包将自动保存修订记录。

用法

你可以像平常一样保存和删除记录。

$product = new \App\Product();
$product->name = 'xxxxxxx';
$product->save();   // Revision record will be saved.

$product = \App\Product::find(1);
$product->name = 'yyyyyyy';
$product->save();   // Revision record will be saved.

$product->delete();   // Revision record will be saved.

保存用户 ID

你可以通过 revision_user_id 保存/删除的用户 ID。

$product = \App\Product::find(1);
$product->revision_user_id = 1; // User ID you want to save.
$product->save();

检索当前修订 ID 和唯一 ID

echo $product->revision_id;
echo $product->revision_unique_id;
  • 你可以通过修订 ID 或唯一 ID 来更改你想要的修订版本。

更改修订

通过 changeRevisionById

$revision_id = 1;

if($product->hasRevisionId($revision_id)) {

    $product->changeRevisionById($revision_id); // This has old values.

}

或通过 changeRevision

$unique_id = '5a906ea1934196bc065f1b22eafd90c9';

if($product->hasRevisionUniqueId($unique_id)) {

    $product->changeRevision($unique_id); // This has old values.

}

注意:一旦你调用了 changeRevisionById()changeRevision(),模型将有旧值。
这意味着如果你保存它,当然,最新的值将被替换为旧值。
所以如果你需要同时保存,不要忘记调用 clearRevision()

返回最新修订

$product->clearRevision();

修订列

如果你希望此包保存特定的修订记录。
在你的模型中设置列名,如下所示。

protected $revisions = ['column_name'];

protected $ignore_revisions = ['column_name'];

检索修订数据

$histories = $product->revisionHistory; // All revisions

$revision = $product->getRevisionById(1);   // A specific revision
$revision = $product->getRevision('5a906ea1934196bc065f1b22eafd90c9');// A specific revision

许可协议

此包根据 MIT 许可证授权。

版权所有 2017 Sukohi Kuhoh