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();
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();