Laravel Auditingを使用してデータベースの変更をauditsテーブルに保存したい

実現したいこと

Laravel Auditingを使用してデータベースの変更をauditsテーブルに保存したい

前提

laravelでユーザー権限を付与するページを作成しています。
誰がいつどの操作をしたか記録するため、
https://qiita.com/ippey_s/items/1bf199572b798ba331b2
こちらのサイトを参考に、操作ログの保存をLaravel Auditingを使用して残そうとしましたが、
新規追加・更新・削除をしてもauditsテーブルに何も保存されません。

発生している問題・エラーメッセージ

laravel.logにはなにもエラーは出力されていません。
audits.logは作成されていません。

該当のソースコード

config/app.php

'providers' => ServiceProvider::defaultProviders()->merge([ App\Providers\AppServiceProvider::class, App\Providers\AuthServiceProvider::class, App\Providers\EventServiceProvider::class, App\Providers\RouteServiceProvider::class, OwenIt\Auditing\AuditingServiceProvider::class, ])->toArray(),

config/audit.php

<?php return [ 'enabled' => env('AUDITING_ENABLED', true), 'implementation' => OwenIt\Auditing\Models\Audit::class, 'user' => [ 'morph_prefix' => 'user', 'guards' => [ 'web', 'api' ], 'resolver' => OwenIt\Auditing\Resolvers\UserResolver::class ], 'resolvers' => [ 'ip_address' => OwenIt\Auditing\Resolvers\IpAddressResolver::class, 'user_agent' => OwenIt\Auditing\Resolvers\UserAgentResolver::class, 'url' => OwenIt\Auditing\Resolvers\UrlResolver::class, ], 'events' => [ 'created', 'updated', 'deleted', 'restored' ], 'strict' => false, 'exclude' => [], 'empty_values' => true, 'allowed_empty_values' => [ 'retrieved' ], 'timestamps' => false, 'threshold' => 0, 'driver' => 'database',   'drivers' => [ 'database' => [ 'table' => 'audits', 'connection' => null, ], ], 'console' => true, ];

User.php(Modelsファイル)

<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth; use OwenIt\Auditing\Contracts\Auditable as Auditable; class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; protected $fillable = [ 'name', 'email', 'password', ]; protected $hidden = [ 'password', 'remember_token', ]; protected $casts = [ 'email_verified_at' => 'datetime', 'password' => 'hashed', ]; } class Users extends Model implements Auditable{ use HasApiTokens, HasFactory, Notifiable; use \OwenIt\Auditing\Auditable; protected $table = 'users'; protected $auditInclude = [ 'name', 'email', 'password', 'remember_token', 'role', ……略…… 'role_role_edit', 'delete_flg', 'created_at', 'updated_at', 'deleted_at', ]; protected $auditEvents = [ 'created', 'updated', 'deleted', 'restored', ]; public static function getUsers(){ $total = self::whereNull('delete_flg')->count(); $users = self::whereNull('delete_flg')->orderBy('id', 'asc')->paginate(50); return ["users" => $users, "total" => $total]; } public static function getUser($id){ $user = self::find($id); return $user; } public static function insertUser($param){ $insert = self::insert([ 'name' => $param['name'], 'email' => $param['email'], 'password' => Hash::make($param['password']), 'role' => $param['role'],     ……略…… 'role_role_edit' => max($param['role_role_edit']), 'created_at' => date('Y/m/d H:i:s') ]); return $insert; } public static function updateUser($id, $param, $user){ $login_user = Auth::user(); $data = []; $data['name'] = $param['name']; $data['updated_at'] = date('Y/m/d H:i:s'); if ($login_user->role_role_edit >= 3) { $data['role'] = $param['role']; ……略…… $data['role_role_edit'] = max($param['role_role_edit']); } if ($login_user->id == $id) { if (!empty($param['old_password']) && !empty($param['password'])) { $data['password'] = Hash::make($param['password']); } $data['email'] = $param['email']; } $update = self::where('id',$id)->update($data); return $update; } public static function deleteUser($id){ $delete = self::where('id', $id) ->update([ 'delete_flg' => 1, 'deleted_at' => date('Y/m/d H:i:s') ]); return $delete; } }

AdminControllerからModelsファイルの各メソッドを呼び出しています。

補足情報(FW/ツールのバージョンなど)

PHPバージョン:8.2.10
owen-it/laravel-auditing:13.5.1
laravel:10.19.0
何か足りない情報などあれば、ご指摘いただければ幸いです。
よろしくお願いします。

コメントを投稿

0 コメント