Laravel 审核更新事件不起作用

Laravel Auditing update event not working

Laravel 更新审核在我的 laravel eloquent 应用程序的几个模型中不起作用。除了用户模型。以下是 audit.php 事件

'events' => [
    'created',
    'updated',
    'deleted',
    'restored',
],

 'strict' => false,
 'timestamps' => true,
 'console' => true,

我的模型设置如下

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use OwenIt\Auditing\Contracts\Auditable;

use Illuminate\Support\Arr;

class Order extends Model implements Auditable
    use \OwenIt\Auditing\Auditable;
    use HasFactory;



    protected $fillable = [
        'order_date',              
        'cancel_date',             
        'comment',
        'remark',
        'customer_auto_id',       
        'customer',   
   ];             

    public function transformAudit(array $data): array
    {
        Arr::set($data, 'recode_auto_id',  $this->attributes['id']);

        return $data;
    }

    public function customer()
    {
        return $this->hasOne(User::class, 'id', 'customer_auto_id');
    }
}

创建和删除在审计上工作正常,但更新不是审计。请告诉我解决方案。

我找到了解决方案。在 laravel,有两种方法可以更新 recode

方法 01.

$Object = Order::where('id', $order)
          ->update([
                    'name'=>$request->name,
                    'phone'=>$request->phone,
                  ]);

方法 02.

$Object           = Order::find($id);
$Object ['name']  =  $request->name;
$Object ['phone'] =  $request->phone;
$Object ->save();

起初,我尝试使用方法 01 来审核日志。它不记录更新但记录创建和删除。因此我尝试了方法 02,它成功地记录了创建、更新和删除的事件。我个人确定方法 02 可以找到列,因为它检索每一列然后保存更改,因此 laravel 可以识别更改以命中日志。使用方法02解决问题。

$Object           = Order::find($id);
$Object ['name']  =  $request->name;
$Object ['phone'] =  $request->phone;
$Object ->save();