人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

laravel-auditing で DBモデルの更新履歴を自動でとる

● owen-it/laravel-auditing のインストール

1. composer でインストールする

composer require owen-it/laravel-auditing

2. config/app.php の providers に追加する

config/app.php

'providers' => [
    // ...
    OwenIt\Auditing\AuditingServiceProvider::class,    // laravel-auditing
],

3. config/audit.php を自動生成する

php artisan vendor:publish --provider "OwenIt\Auditing\AuditingServiceProvider" --tag="config"

4. マイグレーションファイルを を自動生成し、マイグレーションを実行する

php artisan vendor:publish --provider "OwenIt\Auditing\AuditingServiceProvider" --tag="migrations"
php artisan migrate

● owen-it/laravel-auditing の使い方

1. モデルファイルを変更する

class Memo extends Model

  ↓

use OwenIt\Auditing\Contracts\Auditable;
class Memo extends Model implements Auditable
{
    // ========== Trait ==========
    use \OwenIt\Auditing\Auditable;
    // ========== Trait ==========

implements Auditable を追加し use \OwenIt\Auditing\Auditable でトレイトを追加します、 これだけで自動的に更新履歴がテーブル audits に保存されます。

2. 履歴を取得する

// Get first available Article
$memo = Article::first();

// Get all associated Audits
$all = $memo->audits;

// Get first Audit
$first = $memo->audits()->first();

// Get last Audit
$last = $memo->audits()->latest()->first();

// Get Audit by id
$audit = $memo->audits()->find(4);
No.1743
06/27 21:39

edit